Scrapy增加隨機(jī)請(qǐng)求頭user_agent

  1. 為什么要增加隨機(jī)請(qǐng)求頭:更好地偽裝瀏覽器肖卧,防止被Ban室梅。
  • 如何在每次請(qǐng)求時(shí)较坛,更換不同的user_agent留晚,Scrapy使用Middleware即可

Spider 中間件(Middleware) 下載器中間件是介入到 Scrapy 的 spider 處理機(jī)制的鉤子框架酵紫,可以添加代碼來處理發(fā)送給Spiders的 response 及 spider 產(chǎn)生的 item 和 request告嘲。

官網(wǎng)說明在這里:Spider Middleware

  • 添加middleware的步驟:
    1)創(chuàng)建一個(gè)中間件(RandomAgentMiddleware)
    設(shè)置請(qǐng)求時(shí)使用隨機(jī)user_agent
  1. 在settings.py中配置错维,激活中間件。
    網(wǎng)上文章基本上轉(zhuǎn)的都是下面這段代碼:


  • 這段代碼中的疑問:
    1)自己寫的Middleware放在哪個(gè)目錄下
    2)settings.py中的MIDDLEWARES的路徑是如何定

    1)
    自己編寫的中間件放在items.py和settings.py的同一級(jí)目錄橄唬。

2)
settings.py中的MIDDLEWARES的路徑赋焕,應(yīng)該是:

     yourproject.middlewares(文件名).middleware類

如果你的中間件的類名和文件名都使用了RandomUserAgentMiddleware,那這個(gè)路徑應(yīng)該寫成:

xiaozhu.RandomUserAgentMiddleware.RandomUserAgentMiddleware

這一點(diǎn)仰楚,大家可以比較引入自己寫的pipelines隆判,只不過Scrapy框架本身為我們創(chuàng)建了一個(gè)pipelines.py

3) 在middleware中間件中導(dǎo)入settings中的USER_AGENT_LIST
我使用的是mac犬庇,因?yàn)閟ettings.py與RandomUserAgentMiddleware在同一級(jí)目錄

   from settings import USER_AGENT_LIST

Scrapy增加隨機(jī)user_agent的完整代碼:

from settings import USER_AGENT_LIST

import random
from scrapy import log

class RandomUserAgentMiddleware(object):
    def process_request(self, request, spider):
        ua  = random.choice(USER_AGENT_LIST)
        if ua:
            request.headers.setdefault('User-Agent', ua)

settings.py中:

USER_AGENT_LIST=[
    "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1",
    "Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11",
    "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6",
    "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6",
    "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/19.77.34.5 Safari/537.1",
    "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5",
    "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.36 Safari/536.5",
    "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
    "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
    "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; SE 2.X MetaSr 1.0; SE 2.X MetaSr 1.0; .NET CLR 2.0.50727; SE 2.X MetaSr 1.0)",
    "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",
    "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",
    "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; 360SE)",
    "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",
    "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",
    "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.0 Safari/536.3",
    "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24",
    "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24"
]


DOWNLOADER_MIDDLEWARES = {
    'xiaozhu.user_agent_middleware.RandomUserAgentMiddleware': 400,
    'scrapy.contrib.downloadermiddleware.useragent.UserAgentMiddleware': None,
}


代碼Github: https://github.com/ppy2790/xiaozhu

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市侨嘀,隨后出現(xiàn)的幾起案子臭挽,更是在濱河造成了極大的恐慌,老刑警劉巖咬腕,帶你破解...
    沈念sama閱讀 217,185評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件欢峰,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡涨共,警方通過查閱死者的電腦和手機(jī)纽帖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來举反,“玉大人懊直,你說我怎么就攤上這事』鸨牵” “怎么了室囊?”我有些...
    開封第一講書人閱讀 163,524評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)魁索。 經(jīng)常有香客問我波俄,道長(zhǎng),這世上最難降的妖魔是什么蛾默? 我笑而不...
    開封第一講書人閱讀 58,339評(píng)論 1 293
  • 正文 為了忘掉前任懦铺,我火速辦了婚禮,結(jié)果婚禮上支鸡,老公的妹妹穿的比我還像新娘冬念。我一直安慰自己,他們只是感情好牧挣,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評(píng)論 6 391
  • 文/花漫 我一把揭開白布急前。 她就那樣靜靜地躺著,像睡著了一般瀑构。 火紅的嫁衣襯著肌膚如雪裆针。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,287評(píng)論 1 301
  • 那天寺晌,我揣著相機(jī)與錄音世吨,去河邊找鬼。 笑死呻征,一個(gè)胖子當(dāng)著我的面吹牛耘婚,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播陆赋,決...
    沈念sama閱讀 40,130評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼沐祷,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼嚷闭!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起赖临,我...
    開封第一講書人閱讀 38,985評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤胞锰,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后兢榨,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體胜蛉,經(jīng)...
    沈念sama閱讀 45,420評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評(píng)論 3 334
  • 正文 我和宋清朗相戀三年色乾,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了誊册。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,779評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡暖璧,死狀恐怖案怯,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情澎办,我是刑警寧澤嘲碱,帶...
    沈念sama閱讀 35,477評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站局蚀,受9級(jí)特大地震影響麦锯,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜琅绅,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評(píng)論 3 328
  • 文/蒙蒙 一扶欣、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧千扶,春花似錦料祠、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至妆绞,卻和暖如春顺呕,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背括饶。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評(píng)論 1 269
  • 我被黑心中介騙來泰國打工株茶, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人巷帝。 一個(gè)月前我還...
    沈念sama閱讀 47,876評(píng)論 2 370
  • 正文 我出身青樓忌卤,卻偏偏與公主長(zhǎng)得像扫夜,于是被迫代替她去往敵國和親驰徊。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容