提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
`本文主要记录python 爬虫学习入门的记录,便于后续学习。
一、什么是爬虫?
一段自动抓取互联网信息的程序,从互联网上抓取对于我们有价值的信息。
二、爬虫的类型
- 通用网络爬虫
- 聚焦网络爬虫
- 增量式网络爬虫
- 深层网络爬虫
爬虫实现的网络原理可以参考
网络爬虫实现的原理
三、HTTP协议
协议: 就是两个计算机之间为了能够流畅的进行沟通而设置的一个君子协定, 常见的有TCP/IP. SOAP协议, HTTP协议, SMTP协议等。
HTTP协议, Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网服务器传输超文本到本地浏览器的传送协议。 浏览器和服务器之间的数据交互遵守HTTP协议。
HTTP协议把一条消息分为三大块内容,无论是请求还是响应都是三块内容
请求:
请求行 -> 请求方式(get/post) 请求url 地址, 协议
请求头 -> 放一些服务器要使用的附加信息
请求体 -> 一般放一些请求参数
响应
状态行 -> 协议 状态码
响应头 -> 放一些客户端要使用的一些附加信息
响应体 -> 服务器返回的真正客户端要用的内容(HTML, JSON)等
请求头中最常见的一些重要内容
1. User-Agent :请求载体的身份标识(用啥发送的请求)
2. Referer: 防盗链(这次请求是从哪个页面来的? 反爬会用)
3. Cookie: 本地字符串数据信息(用户登录信息, 反爬的token)
响应头中的一些重要内容
1、 cookie :本地字符串数据信息(用户登录信息, 反爬的token)
2、各种神奇的莫名其妙的字符串(这个需要经验, 一般都是token字样, 防止各种攻击和反爬)
请求方式
Get : 查询东西的时候用的多 显示提交
Post: 对服务器内容做更改或者上传 隐式提交
三、Request
1.request 模块的安装
request不是python自带的,需要安装requests 模块
安装方法pip install requests
使用清华源安装更快一些
国内源 pip instll -i https://pypi.tuna.tsinghua.edu.cn/simple requests
2. 使用request 爬虫的简单示例
importrequests
#查询的链接
url="https://movie.douban.com/j/chart/top_list"
for i in range(0,101,20):
param={
"type":"24",
"interval_id":"100:90",
"action":"",
"start":i,
"limit":20,
}
#查询的身份伪装成浏览器
headers={
"User-Agent":"Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/121.0.0.0Safari/537.36Edg/121.0.0.0"
}
#查询的响应
response=requests.get(url=url,headers=headers,params=param)
#解析查询的响应
print(response.json())
withopen(r'D:\c++Code\code\w.txt',mode='a',encoding='utf-8')asf:
f.write(response.text)
response.close()
3. 数据解析
- re解析 正则表达式, 运行速度最快
- Bs4解析 可以代表一类 执行效率低, 代码简单
- xpath解析 语法简单,舒服
总结
暂时理解为爬虫就是从网页获取信息,获取到的数据一般为网页源代码,需要去对网页源代码进行解析, 可以使用的工具 正则表达式, BS4, xpath等,需要根据情况去分析, 从而选择最方便快捷的方式获取数据。