爬虫基础讲解
爬虫
通过编写程序,模拟浏览器上网,然后让其去互联网上来抓取数据的过程
爬虫在使用场景中的分类
通用爬虫
抓取系统重要组成部分,抓取的是一整张页面的数据
聚焦爬虫
是建立在通用爬虫的基础之上,抓取的是网页中特定的局部内容
增量爬虫
检测网站中数据更新的情况,只会抓取网站中最新更新出来的数据
web请求过程
1服务器渲染:在服务器那边直接把数据和html整合在一起,统一返回给浏览器
在页面源代码中能看到数据
2客户端渲染:第一次请求只要一个html骨架,第二次请求拿到数据,进行数据展示
在页面源代码中,看不到数据
http协议
--服务器跟客户端进行数据交互的一种形式
常用请求头信息
--User-Agent:请求载体的身份标识
--Connection:请求完毕后,断开连接还是保持连接
常用响应头信息
--Content-Type:服务器响应客户端的数据类型
https协议
--安全的超文本传输协议
加密方式
--对称秘钥加密
--非对称秘钥加密
--证书秘钥加密
requests模块
--urllib模块
--requests模块
requests模块:python中原生的一款基于网络请求的模块,功能非常强大,简单便捷,效率极高
作用:模拟浏览器发送请求
如何使用:
--指定url
--发起请求
--获取响应数据
--持久化存储
环境安装:
pip install requests
国内源
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests
实战编码:
import requests
1、指定url
url='https://www.sogou.com'
2、发起请求
respon = requests.get( url = url )
3、获取响应数据
data = respon.text
4、持久化存储
#UA:User-Agent(请求载体的身份标识)
#UA伪装:门户的网站服务器会检测对应的请求的载体身份标识,如果检测到请求载体的身份标识为某一款浏览器,
说明该请求是一个正常的请求,但是,如果检测到请求的载体标识不是基于某一浏览器的,则表示该请求为不正常请求
不正常的请求(爬虫),则服务器就很可能拒绝该请求
#UA伪装:让爬虫对应的请求载体身份标识伪装成某一浏览器
处理带参数
url='https://www.sogou.com/web'
kw=input('enter a word:')
#处理url携带的参数:封装到字典中
param = {
'query' : kw
}
headers = {
'user-agent' : '浏览器'
}
#对指定的url发起的请求对应的url是携带参数的,并且请求过程中处理了参数
respon = requests.get( url=url,header=header,params=param)
post请求
requests.post(url=url,data=dat)
dat是一个字典
get请求
requests.get(url=url,params=param)