import requestsurl = 'https://movie.douban.com/top250'
response = requests.get(url)
# 查看結果
print(response)
??在requests使用一文中我們有講到,當狀態碼不是200時表示爬蟲不可用,也就是說我們獲取不到網頁源代碼。但是我們還是可以掙扎一下,不是說不可用就放棄了。爬蟲時經常會遇到有些網站有反爬機制,為了能夠請求成功該如何操作?那當然是把我們偽裝成瀏覽器了!
??那么如何把自己偽裝成瀏覽器代替我們發送請求呢?pycharm有個字典Headers,我們需要在瀏覽器中找到鍵User-Agent對應的值
User-Agent:對應的值包含了瀏覽器、操作系統的各項信息。如果沒有User-Agent,就相當于赤裸裸的去訪問對方服務器,只要對方有反爬蟲機制,就能發現你是爬蟲。
在瀏覽器中打開想要爬取的網站,右鍵 --> 檢查然后如下圖操作:
??也有的網站刷新后出現的項目很少,甚至點開沒有User-Agent對應的值,但是有一個項目里面一定有 : 項目名跟網站地址很相近的項目中。例如在本例中名為www.zhihu.com的項目里一定含有。
??在以貝殼租房為例,打開網頁后,右鍵 --> 檢查,在項目名為zufang中一定含有User-Agent對應的值
獲取鍵user-agent對應的值后,我們把鍵與值寫入字典Headers中
import requests# 1. 瀏覽器偽裝
url = 'https://movie.douban.com/top250'
headers = {'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36'
}
# 獲取響應結果
response = requests.get(url, headers=headers)
# 查看狀態碼
print(response.status_code) # 200
# 獲取網頁源代碼
# print(response.text)