urllib提供了一系列用于操作URL的功能。
from urllib import request #引用urllib
resp = request.urlopen("http://www.baidu.com") #打开网页,可以直接urlopen也可以先传入Request再传入urlopen
print(resp.read().decode("UTF-8")) #读取内容设置编码模式
from urllib import request
req = request.Request("http://www.baidu.com")
req.add_header("User-Agent","Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko") #模拟浏览器,以免被网站识别为爬虫。
resp = request.urlopen(req)
print(resp.read().decode("UTF-8"))
http://www.thsrc.com.tw/tw/TimeTable/SearchResult网站为例,NetWork中的Doc的SearchResult的Origin和Use-Agent是我们需要的,为了不让网站认出你是爬虫。
#from urllibimport request 如果用了这种写法,后面要写request.Request 以及 request.urlopen
#from urllib.request import urlopen 如果用了这种写法,后面就要写Request不能写request.Request
#from urllib.request import Request 这个同上。
from urllib import request
#from urllib.request import urlopen
#from urllib.request import Request
from urllibimport parse
req = request.Request("http://www.thsrc.com.tw/tw/TimeTable/SearchResult")
#request.Request可以request.Request().add_header 可以 request.Request().data
postData = parse.urlencode([
("StartStation","2f940836-cedc-41ef-8e28-c2336ac8fe68"),
("EndStation","977abb69-413a-4ccf-a109-0272c24fd490"),
("SearchDate","2018/04/11"),
("SearchTime","19:00"),
("SearchWay","DepartureInMandarin")
])
req.add_header("Origin","http://www.thsrc.com.tw")
req.add_header("User-Agent","Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36")#模拟浏览器行为
resp = request.urlopen(req,data=postData.encode("utf-8"))
print(resp.read().decode("UTF-8"))