爬蟲過程中遇到的各種問題

亂碼問題:

首先我們要知道網(wǎng)站使用的是什么編碼,我們打開該網(wǎng)站的控制臺,點(diǎn)擊F12瀏覽器快捷鍵打開,輸入document.charset回車即可查看該網(wǎng)站的編碼

  • 問題爬取的數(shù)據(jù)樣本為:
    ′?ˉ1????¨???????è?????????????¨?o????????????????è?¢????????ˉ?????????è??
    解決方案:通過編碼、解碼的方式content.encode(‘raw_unicode_escape’).decode()
    解決方案:接指定res.encoding,指定內(nèi)容和網(wǎng)頁設(shè)置的編碼格式一致即可;
    解決方案:通過res.apparent_encoding指定
  • 問題:爬取的數(shù)據(jù)展示成\xb7\xaf\xe5\xb8\xa6\xe9\xa3\x8
    解決方案:使用str(content, ‘utf8’)的方法即可解決
    或者可以使用它的方法
    Html=html.text.encode('iso-8859-1').decode('gbk')#對編碼格式為gbk方式讀取

請求params的編碼問題

我們在使用requests進(jìn)行傳入params時(shí)遇到的編碼問題如下方代碼

par = {'isPagination': 'true', 'pageHelp.pageSize': '25', 'pageHelp.pageNo': 1, 'pageHelp.beginPage': 1,
       'pageHelp.cacheSize': '1', 'pageHelp.endPage': 1, 'sqlId': 'BS_KCB_GGLL', 'siteId': '28',
       'channelId': '10007%2C10008%2C10009%2C10010', 'type': '', 'stockcode': '', 'extTeacher': '', 'extWTFL': '',
       'createTime': '', 'createTimeEnd': '', 'order': 'createTime%7Cdesc%2Cstockcode%7Casc'}

par2 = {'isPagination': 'true', 'pageHelp.pageSize': '25', 'pageHelp.pageNo': 1, 'pageHelp.beginPage': 1,
       'pageHelp.cacheSize': '1', 'pageHelp.endPage': 1, 'sqlId': 'BS_KCB_GGLL', 'siteId': '28',
       'channelId': '10007,10008,10009,10010', 'type': '', 'stockcode': '', 'extTeacher': '', 'extWTFL': '',
       'createTime': '', 'createTimeEnd': '', 'order': 'createTime|desc,stockcode|asc'}
headers = {'Host': 'query.sse.com.cn', 'Pragma': 'no-cache', 'Referer': 'http://www.sse.com.cn/',
           'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36 Edg/107.0.1418.24'}

url='http://localhost:8080/gethttpbody/hello'
import requests
res=requests.get(url=url,params=par,headers=headers)
print(res.text)

發(fā)送請求par時(shí)請求的方式是錯誤的應(yīng)為在params=par時(shí)par為對象,對象中的字符串值不會進(jìn)行url請求參數(shù)轉(zhuǎn)碼,導(dǎo)致發(fā)送給服務(wù)器后得到的是createTime%7Cdesc%2Cstockcode%7Casc,(其中%7就是|的url編碼)如果后臺的邏輯是那|進(jìn)行拆分字符串,處理該就行識別到%7就會出錯;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容