為什麼要偽裝ua跟使用**ip問題就直接跳過了,直接進入正題。<====>我們知道,要想偽裝ua跟**ip就要在發起請求時進行攔截,然後更改資料之後,進行重新提交,那在scrapy中,我們怎麼去攔截請求?——
中介軟體
(middlewares)
response
處理的鉤子框架
class
cnblogs**********middleware
:# 攔截請求
defprocess_request
(self, request, spider)
:# ...
return
none
# 攔截所有的響應
defprocess_response
(self, request, response, spider)
:# ...
return response
# 攔截發生異常的請求
defprocess_exception
(self, request, exception, spider)
:# ...
# 將修正之後的請求體物件進行重新傳送
return request
第一種,通過第三方庫,偽裝user-agent
from fake_useragent import useragent # 導入庫
# 攔截請求
defprocess_request
(self, request, spider)
:# 第一種,使用第三方庫
ua = useragent(
) request.headers[
'user-agent'
]= ua.random
return
none
第二種,通過定義ua池,進行偽裝user-agent
import random
class
cnblogs**********middleware
: user_agent_list =
["(khtml, like gecko) chrome/22.0.1207.1 safari/537.1"
,"(khtml, like gecko) chrome/20.0.1132.57 safari/536.11"
,"(khtml, like gecko) chrome/20.0.1092.0 safari/536.6"
,"(khtml, like gecko) chrome/20.0.1090.0 safari/536.6"
,"(khtml, like gecko) chrome/19.77.34.5 safari/537.1"
,"(khtml, like gecko) chrome/19.0.1084.9 safari/536.5"
,"(khtml, like gecko) chrome/19.0.1084.36 safari/536.5"
,"(khtml, like gecko) chrome/19.0.1063.0 safari/536.3"
,"(khtml, like gecko) chrome/19.0.1063.0 safari/536.3"
,"(khtml, like gecko) chrome/19.0.1063.0 safari/536.3"
,"(khtml, like gecko) chrome/19.0.1062.0 safari/536.3"
,"(khtml, like gecko) chrome/19.0.1062.0 safari/536.3"
,"(khtml, like gecko) chrome/19.0.1061.1 safari/536.3"
,"(khtml, like gecko) chrome/19.0.1061.1 safari/536.3"
,"(khtml, like gecko) chrome/19.0.1061.1 safari/536.3"
,"(khtml, like gecko) chrome/19.0.1061.0 safari/536.3"
,"(khtml, like gecko) chrome/19.0.1055.1 safari/535.24"
,"(khtml, like gecko) chrome/19.0.1055.1 safari/535.24"
]
# 攔截請求
defprocess_request
(self, request, spider)
:# 第二種,定義乙個ua池
# 從ua池列表中,隨機設定乙個
request.headers[
'user-agent'
]= random.choice(self.user_agent_list)
return
none
使用**池
class
cnblogs**********middleware
:# 最好爬取一些最新的存活ip,或者購買付費**ip
,]
設定隨機**ip
# 攔截請求
Scrapy 爬蟲偽裝
scrapy 設定 ip 設定隨機user agent 防止對方發現我們 設定 ip middleware.py class my proxy object def process request self,request,spider 伺服器的ip 與埠號 註冊乙個 阿布雲 設定通行使用者的使用者...
使用fake useragent庫偽裝請求頭
在編寫爬蟲進行網頁資料的時候,大多數情況下,需要在請求是增加請求頭,下面介紹乙個python下非常好用的偽裝請求頭的庫 fake useragent,具體使用說明如下 pip install fake useragent from fake useragent import useragent ua...
scrapy簡單使用
settings.py檔案設定 如果 中沒有robots檔案,就不會抓取任何資料 robotstxt obey false 設定請求頭 default request headers 啟動pipline 檔案68行,取消注釋即可 item pipelines 建立專案和爬蟲 1.建立專案 scrap...