在python3中 urllib庫和urilib2庫合併成了urllib庫。。
其中urllib2.urlopen()變成了urllib.request.urlopen()
urllib2.Request()變成了urllib.request.Request()
import urllib #請求 request = urllib.request.Request('https://www.baidu,com') #響應 response = urllib.request.urlopen(request) html = response.read() print(html)
post請求html
import urllib from urllib import parse from urllib import request url = 'https://www.xxx.com/login' postdata = {'username': 'qwe', 'password': 'qwe123' } #info 須要被編碼成urllib 能理解的格式 data = parse.urlencode(postdata) req = request.Request(url,data) response = request.urlopen(req) html = response.read()
將上面的代碼修改,設置一下請求頭中的User-Agent域和Referer域信息python
User Agent中文名爲用戶代理,簡稱 UA,它是一個特殊字符串頭,使得服務器可以識別客戶使用的操做系統及版本、CPU 類型、瀏覽器及版本、瀏覽器渲染引擎、瀏覽器語言、瀏覽器插件等。web
HTTP Referer是header的一部分,當瀏覽器向web服務器發送請求的時候,通常會帶上Referer,告訴服務器我是從哪一個頁面連接過來的,服務器基此能夠得到一些信息用於處理。瀏覽器
from urllib import parse from urllib import request url = 'https://www.xxx.com/login' url_agent = 'Mozilla/5.0(Macintosh;IntelMacOSX10.6;rv:2.0.1)Gecko/20100101Firefox/4.0.1' referer = 'http://www.xxxx.com/' postdata = {'username': 'qwe', 'password': 'qwe123' } header = {'User-Agent': url_agent,'Referer': referer} #info 須要被編碼成urllib 能理解的格式 data = parse.urlencode(postdata) req = request.Request(url,data,header) response = request.urlopen(req) html = response.read()
也能夠使用add_header來添加修改以下服務器
from urllib import parse from urllib import request url = 'https://www.xxx.com/login' url_agent = 'Mozilla/5.0(Macintosh;IntelMacOSX10.6;rv:2.0.1)Gecko/20100101Firefox/4.0.1' referer = 'http://www.xxxx.com/' postdata = {'username': 'qwe', 'password': 'qwe123' } #header = {'User-Agent': url_agent,'Referer': referer} #info 須要被編碼成urllib 能理解的格式 data = parse.urlencode(postdata) req = request.Request(url) req.add_header('User-Agent',url_agent) req.add_header('Referer',referer) req.data = data response = request.urlopen(req) html = response.read()