快速設置隨機的UserAgent


序言

我們在進行請求的時候,一般會設置虛擬的UserAgent,但是每次手動去設置很麻煩,而且同一個UserAgent訪問次數多了,也很容易被屏蔽,所有我們需要大量的UserAent去供我們發起請求。

fake-useragent這個庫包含了大量的UserAgent可以隨意進行替換

安裝fake-useragent

因為fake-useragent是一個python庫,所以我們直接使用pip安裝就可以了。

pip install fake-useragent

下面是一個簡單獲取不同瀏覽器UserAgent的例子

>>> import fake_useragent
>>> userAgent=fake_useragent.UserAgent()
>>> for i in range(5):
...       print(userAgent.random)
... 
Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2224.3 Safari/537.36
Opera/9.80 (Windows NT 5.2; U; ru) Presto/2.7.62 Version/11.01
Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1500.55 Safari/537.36
Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.93 Safari/537.36
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.93 Safari/537.36

這樣每次就可以隨機用不同的UserAgent去訪問網站,你的請求也沒那么容易被屏蔽了

獲取UA

獲取隨機UserAgent

>>> import fake_useragent
>>> userAgent=fake_useragent.UserAgent()
>>> print(userAgent.random)
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 Safari/537.36

如果你要設置成某個瀏覽器的UserAgent也是可以的

獲取Chrome 的UA

>>> import fake_useragent
>>> userAgent=fake_useragent.UserAgent()
>>> print(userAgent.chrome)
Mozilla/5.0 (X11; CrOS i686 3912.101.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36

獲取Firefox 的UA

>>> import fake_useragent
>>> userAgent=fake_useragent.UserAgent()
>>> print(userAgent.firefox)
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10; rv:33.0) Gecko/20100101 Firefox/33.0

在Scrapy中實現隨機UserAgent

方法1:直接在程序中添加UserAgent

# -*- coding: utf-8 -*-
import scrapy
from fake_useragent import UserAgent

class ExampleSpider(scrapy.Spider):
   name = 'example'
   header={'User-Agent':UserAgent().random}
   def start_requests(self):
       url='http://example.com'
       yield scrapy.Request(url,headers=self.header)

   def parse(self, response):
       print(response.request.headers['User-Agent'])

方法2:在middlewares中添加UserAgent

  1. 在process_request()方法里面,添加一個中間件
def process_request(self, request, spider):
    from fake_useragent import UserAgent
    ua = UserAgent()
    request.headers['User-Agent'] = ua.random
  1. 在settings文件里面默認的UserAgent關閉掉
DOWNLOADER_MIDDLEWARES = {
    'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware': None,
    'dome1.middlewares.Dome1DownloaderMiddleware': 543,
}

第一次運行

第二次運行

可以看到兩次運行的UserAgent都是不一樣的,表示我們的隨機UserAgent也是設置成功了

方法3:直接在sttings文件里面上設置UserAgent

把settings文件里面的默認UserAgent替換掉,替換成隨機的UserAgent

from fake_useragent import UserAgent
USER_AGENT=UserAgent().random

第一次運行

第二次運行

可以看到兩次的結果都是不一樣的,說明我的的隨機UserAgent已經是設置成功了呢

以上就是Scrapy設置代理IP的過程,以上教程如果覺得對你有幫助的話,請點擊一下推薦讓更多的人看到!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM