ticket进行urlencode是什么意思_request请求中进行url转码,结果意想不到,python爬虫(2)...
生活随笔
收集整理的這篇文章主要介紹了
ticket进行urlencode是什么意思_request请求中进行url转码,结果意想不到,python爬虫(2)...
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
在請(qǐng)求網(wǎng)站的時(shí)候,往往會(huì)加入一些參數(shù)這些參數(shù)有可能是各種字符。例如:參數(shù)中輸入中文字符,這個(gè)時(shí)候做url請(qǐng)求的時(shí)候需要轉(zhuǎn)成%加上16進(jìn)制的格式,今天我們就來(lái)解決爬蟲(chóng)中url字符轉(zhuǎn)碼的問(wèn)題。
如果不轉(zhuǎn)碼會(huì)發(fā)生什么
請(qǐng)求百度搜索,關(guān)鍵詞是"你好"
from urllib.request import Request, urlopenurl = "https://www.baidu.com/s?wd=你好"headers = {"User-Agent": "Mozilla/5.0(compatible;MSIE9.0;WindowsNT6.1;Trident/5.0"}request = Request(url, headers=headers)response = urlopen(request)運(yùn)行程序,看到出錯(cuò)信息
編碼出錯(cuò),說(shuō)明直接傳入中文作為url參數(shù)是不行的。
quote 方式
引入url lib.parse 保重的 quote組件
from urllib.request import Request, urlopenfrom urllib.parse import quoteurl = "https://www.baidu.com/s?wd={}".format(quote("你好"))headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36"}request = Request(url, headers=headers)response = urlopen(request)print(response.read().decode())運(yùn)行返回結(jié)果了。說(shuō)明quote轉(zhuǎn)碼成功了
urlencode 方式
這里引入urlencode組件,他的好處是可以對(duì)多個(gè)key value對(duì)進(jìn)行定義。如果我們有多個(gè)參數(shù)需要進(jìn)行url轉(zhuǎn)碼的就可以用urlencode的方式
from urllib.request import Request, urlopenfrom urllib.parse import urlencodeparameters={"wd":"你好"}url = "https://www.baidu.com/s?wd={}".format(urlencode(parameters))headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36"}request = Request(url, headers=headers)response = urlopen(request)print(response.read().decode())也能夠看到結(jié)果,真的很簡(jiǎn)單吧。
收工,喜歡就關(guān)注評(píng)論轉(zhuǎn)發(fā),886
總結(jié)
以上是生活随笔為你收集整理的ticket进行urlencode是什么意思_request请求中进行url转码,结果意想不到,python爬虫(2)...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: wpf datepicker 选择时分秒
- 下一篇: 便携式三星mysql_三星集团某站点My