爬取搜狗指定詞條的搜尋結果
阿新 • • 發佈:2021-01-25
技術標籤:爬蟲專欄
首先用搜狗搜尋波曉張
發現後面的引數很多,這麼多引數是否都是我們需要使用的呢?
發現query=波曉張這個內容才是對應我們需要使用的,後面無用的引數我們先刪除掉,然後判斷這個url是否是我們需要的。
此時我們需要將前面的sogou.com/web的對應的引數和後面的query=波曉張切割開來,提取出後面相應的引數,然後分別傳入get的方法之中,對應的程式碼如下:
#UA:User-Agent{請求載體的身份標識}
#UA偽裝:入口網站的伺服器會檢測對應請求的載體身份標識
#如果檢測到請求的載體身份標識為某一款瀏覽器,說明該請求是一個正常的請求
#但是如果檢測到請求的檢測身份標識不是基於某一款瀏覽器的,則認為是不正常的
#請求(爬蟲),則伺服器端就很有可能拒絕該次請求
#UA偽裝:讓爬蟲對應的請求載體身份標識偽裝成某一款瀏覽器
import requests
#第一步:設定url
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36'
}
url = 'https://www.sogou.com/web'
#處理url攜帶的引數:封裝到字典中,web後面的?號是否保留都可以
kw = input ('enter a word:')
param = {
'query':kw
}
#只有一組引數的時候作為字典的鍵值,如果我們有多組
#引數的時候,多組引數都可以作為相應字典的鍵值
#第二步:發起請求
#對指定的url發起的請求對應的url是攜帶引數的,
#並且請求過程中處理了引數
response = requests.get(url=url,params=param,headers=headers)
#get(url,params,kwargs)
#在域名後面放入了params,相當於動態拼接出了引數
page_text = response.text
fileName = kw+ '.html'
with open(fileName,'w',encoding='utf-8') as fp:
fp.write(page_text)
print(fileName,'儲存成功!!!')