爬虫就是一个伪装者,伪装成浏览器跟服务器沟通,并向服务器请求信息。
那么,爬虫在伪装时,最简单也最常用的方法就是利用User-Agent。
通常,我们是把整个User-Agent的键一起打包传入requests.get()里面。
其实,也可以把User-Agent的键(即各种浏览器)放到一个列表里,然后随机抽取一个浏览器传入到requests.get()里面伪装,然后向服务器发送请求。
import requests
import random
from bs4 import BeautifulSoup
url = 'https://www.mafengwo.cn/?city8.com'
headers_list = ['Mozilla/5.0','Windows NT 10.0' ,'Win64', 'x64', 'AppleWebKit/537.36 (KHTML, like Gecko)',
'Chrome/116.0.0.0',
'Safari/537.36', 'Edg/116.0.1938.81'
]
headers_random = random.choice(headers_list)
headers_mfw ={'User-Agent':headers_random}
mfw_res = requests.get(url, headers= headers_mfw)
print(headers_mfw)
print(mfw_res.status_code)
运行上面的代码,也能成功获得服务器的响应:
是不是也挺有趣?