了解更多關(guān)注微信公眾號“木下學(xué)Python”吧~嗅虏,獲取更多爬蟲示例吧
原文:https://blog.csdn.net/zjkpy_5/article/details/80887981
1.爬蟲程序運行沒問題,但沒顯示結(jié)果或結(jié)果不全
1)有些網(wǎng)站針對每一個ip鳖链,單位時間內(nèi)只能訪問一定次數(shù),至于單位時間是多少看網(wǎng)站規(guī)定吧宙拉,超過這個次數(shù)就不能訪問爬去 了例朱,就只有等了,等多久只锭,看那個網(wǎng)站的規(guī)定吧
2)可以運行著恩,沒有結(jié)果,那要么是選擇器問題蜻展,換一個選擇器喉誊;要么是選擇器里面的內(nèi)容有問題導(dǎo)致沒有
爬取到結(jié)果
2.請求頭 報錯
HTTP請求包括:一個請求行,若干請求頭纵顾,實體內(nèi)容
1伍茄、http請求細(xì)節(jié)----請求行:
1)請求方式:post、get施逾、head敷矫、options、delete音念、trace沪饺、put;
2)常用post、get
3)post闷愤、get區(qū)別:表現(xiàn)在數(shù)據(jù)傳遞上
A)get方式可在url地址后以?形式帶上交給服務(wù)器的數(shù)據(jù)整葡,多個數(shù)據(jù)之間以&分隔,但數(shù)據(jù)容量不能超過1k;
B)post可在請求的實體中向服務(wù)器發(fā)送請求讥脐,傳送數(shù)據(jù)量無限制
2遭居、http請求頭
Accept:告訴服務(wù)器 客戶機(jī)支持的數(shù)據(jù)類型
Accept-Charset:告訴服務(wù)器,客戶機(jī)采用的編碼
Accept-Encoding:告訴服務(wù)器旬渠,客戶機(jī)支持的壓縮格式
Accept-Language:客戶機(jī)的語言環(huán)境
Host:客戶機(jī)通過這個頭告訴服務(wù)器想訪問的主機(jī)
3俱萍、例如:headers = {
'user-agent':'Mozilla/5.0 (Windows NT 10.0; WOW64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'
}
:兩邊都分別用引號括起來,開頭不允許有空格
4告丢、有些有著反爬機(jī)制的網(wǎng)站枪蘑,請求頭要寫全,否則會被屏蔽,或者報錯
3.抓取url
最好用.xpath
4.UnicodeEncodeError
在寫入文本中是會出現(xiàn)岳颇,用try:except:pass掉
5.集合減集合
set(link_list) - set(exist_url)
去掉重復(fù)的元素
6.AJAX:
在 XHR 里面不顯示數(shù)據(jù)的話照捡,只能在 ALL 哪些文件里面找 對應(yīng)的文件的 json 數(shù)據(jù)
7.\r:
代表 刪除后面的字符
8.拼接url:
params = {
'offset': offset,
'format': 'json',
'keyword': '街拍',
'autoload': 'true',
'count': '20',
'cur_tab': '1',
'from': 'search_tab'
}
base_url = 'https://www.toutiao.com/search_content/?'
url = base_url + urlencode(params)
9.訪問遇見403: