requests實現動態爬取頁面
阿新 • • 發佈:2022-01-15
首先,介紹一種反爬機制:UA檢測(User-Agent:請求載體的身份標識):
入口網站的伺服器會檢測對應請求的載體身份標識,如果到該請求的UA為某瀏覽器,則說明該請求是正常的請求,允許訪問;反之,若檢測到不是某瀏覽器(UA只會有兩種,瀏覽器和爬蟲),則說明該請求是不正常的,可能會拒絕訪問。
那麼,就會有對應的反反爬策略:UA偽裝:
讓爬蟲對應的UA偽裝成某一款瀏覽器的UA。
如何偽裝,通過headers字典,在裡面設定UA值:
# UA偽裝
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36 '
}
此外,由於是動態爬取,所以在url中不能設定具體的引數,那就需要處理url攜帶的引數,封裝到字典中:
url = 'https://www.sogou.com/web'
# 處理url攜帶的引數,封裝到字典中
kw = input('enter a word:')
param = {
'query':kw
}
最後可以看到,在控制檯輸入要搜尋的關鍵字,即可成功爬取: