1. 程式人生 > >python3爬蟲的模擬瀏覽器

python3爬蟲的模擬瀏覽器

6.2 mac os x () pytho pan 瀏覽器 mil 第三方 代碼

爬蟲的使用過程中,網站最簡單的反爬蟲就是驗證發起請求的客戶端是否為瀏覽器,因此需要爬蟲模擬瀏覽器對網站發起請求。

這裏介紹一個fake_useraent

1、偽造useragent字符串,每次請求都使用隨機生成的useragen

為了減少復雜度,隨機生成UA的功能通過第三方模塊庫fake-useragent實現,使用pip進行安裝

pip install fake-useragent

2、生成一個useragen字符串只需要如下代碼

from fake_useragent import UserAgent

ua = UserAgent()

各瀏覽器的User-Agent

這個庫還有一個其他的功能,就是可以隨機各瀏覽器的的useragen

print(ua.ie)

Mozilla/5.0 (Windows; U; MSIE 9.0; Windows NT 9.0; en-US)

Opera瀏覽器的useragen

print(ua.opera)

Opera/9.80 (Windows NT 6.1; U; zh-cn) Presto/2.6.37 Version/11.00

Chrome瀏覽器的useragen

print(ua.chrome)

Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.2 (KHTML, like Gecko) Chrome/22.0.1216.0 Safari/537.2

Firefox瀏覽器的useragen

print(ua.firefox)

Mozilla/5.0 (Windows NT 6.2; Win64; x64; rv:16.0.1) Gecko/20121011 Firefox/16.0.1

Safari瀏覽器的useragen

print(ua.safari)

Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5355d Safari/8536.25

隨機User-Agent

寫爬蟲最實用的就是可以隨意變換

headers,一定要有隨機性

在這裏寫了三個隨機生成UA,三次打印都不一樣,隨機性很強,十分方便

print(ua.random)

print(ua.random)

print(ua.random)

Mozilla/5.0 (X11; CrOS i686 3912.101.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, likeGecko) Chrome/37.0.2062.124 Safari/537.36

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1664.3 Safari/537.36

Ps:也可以自己寫一個useragen列表用於random 作為useragent

這裏是代碼案例:

#用於爬取的url

from fake_useragent import UserAgent

from bs4 import *

import requests

url="http://baidu.com"

ua = UserAgent()

a=ua.random #隨機的一個user-agent

headers={

"User-Agent": a

}

res=requests.get(url,headers=headers) #獲取網頁內容

t=res.text #返回的響應字符串

#這裏模擬的時候只需要寫user-agent 字段即可

python3爬蟲的模擬瀏覽器