我们讲过开发者工具可以截取B/S交互的数据包,那么这节我们用python3抓取其截取的百度数据包
目的:通过python3抓取百度的网页
工具:pycharm(下载地址:https://www.jetbrains.com/pycharm/download/#section=windows)
requests是一个相比于urllib与urllib3更加强大的网络库,它可以发送请求并接收服务端的响应
首先打开pycharm创建一个新项目
在settings看看设置
在下角的终端里下载requests模块
因为我这已经下载了,所以它不用下载
没有安装的如下图
查看settings里面有没有requests模块包,下图已经存在了
新建python文件
准备好requests包,我们就开始解析数据了,通过开发者工具截取百度的数据包
我们可以看到这个www.baidu.com这个请求页面,右栏的Request URL为’https://www.baidu.com/’,请求方式为GET请求,状态码为200(200代表请求已经成功)
再看request headers
request headers中其它我就不赘述了,经常使用的是User Agent,因为它代表了爬虫程序的伪装
还有cookie,但它在这里不是很重要,因为它是用于保持会话的,但咱这不是需要通过登陆才能获取内容的界面,所以不用管它
import requests
#首先导入模块requests
url='https://www.baidu.com/'
#url为https://www.baidu.com
headers={
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'
}
#请求头在网页中显示了很多,我们用字典表示,其中的请求头描述为goodle的User-Agent,用来欺骗服务器
request=requests.get(url,headers=headers)
#请求方式为get,所以我们request.get,url与headers是请求的参数,我们需要放在其中,请求结果传给request变量
print(request.text)
#在console中输出text文件
输出结果为这样,正确爬取了数据包
如果想要把它保存到文件中,可以使用with open
import requests
#首先导入模块requests
url='https://www.baidu.com/'
#url为https://www.baidu.com
headers={
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'
}
#请求头在网页中显示了很多,我们用字典表示,其中的请求头描述为goodle的User-Agent,用来欺骗服务器
request=requests.get(url,headers=headers)
#请求方式为get,所以我们request.get,url与headers是请求的参数,我们需要放在其中,请求结果赋值为request变量
with open(r'C:\Users\11546\Desktop\新建文件夹\1.txt','w') as f:
f.write(request.text)
#打开桌面下新建文件夹下的1.txt,然后把数据写入进去