伪装浏览器的爬虫代码
这里主要爬取的还是百度的页面,所用的软件是sublime Text,需要的·朋友可以去官网上自行下载
import urllib.request #引用库 <--> from urllib import request
import re
import random
url = r"http://www.baidu.com/"
#浏览器名称---> User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36 Edg/92.0.902.62
#写一个字典,构造请求头信息
#header={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36 Edg/92.0.902.62"}
#添加多个请求头伪装(agent3是手机端百度,其余的是电脑端)(手机端是“百度一下”电脑端显示为“百度一下,你就知道”)
agent1="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36 Edg/92.0.902.62"
agent2="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11"
agent3="Mozilla/5.0 (Linux; Android 7.1.1; OPPO R11st Build/NMF26X; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/63.0.3239.83 Mobile Safari/537.36 T7/11.15 baiduboxapp/11.15.5.10 (Baidu; P1 7.1.1)"
agent4="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)"
#将这四个agent装到一个列表里面
list1=[agent1,agent2,agent3,agent4]
agent=random.choice(list1)
#构造请求头信息
header={"User-Agent":agent}
#创建自定义对象,为了对抗反爬虫机制
#反爬虫机制:判断用户是否是浏览器访问
#可以通过伪装浏览器进行访问
req=urllib.request.Request(url,headers=header)
#request自动创建的请求对象
reponse = urllib.request.urlopen(req).read().decode() #解码--- (编码encode())
pat=r"<title>(.*?)</title>" #通过正则表达式,进行清洗
data=re.findall(pat,reponse)
print(data[0])
User-Agent的获取方法
注意:
- 在点击“网络”或“network”后找不到的话,可以点击“ctrl+R”重新刷新试试;
- 再出现如图片所示内容以后,不一定非要需要我用红线标出的那一部分,随便点击“名称”中的任意一个就可以。