要点备注
1、网页信息,包括html、css等内容的查看主要依据开发者工具;
2、当滚轮在网页上滑动的时候,发起了一个ajax请求,且该请求到
了新的网页数据,这就是动态加载数据;
动态加载的数据:通过另外一个额外的请求请求到的数据
ajax( 请求到新的数据)只是刷新了局部网页,而不是重新
去加载整个网页
js也会生成动态加载的数据
http协议:hyper text transfer protocol 超文本传输协议,是client和Server进行数据交互的某种形式;
常用头信息:
请求头信息:(类似人的姓名)
User_Agent:请求载体的身份标识;
Connection:keep_alive 长链接
connection:close短链接
https: 安全的http协议,安全提现在加密上
加密方式:证书秘钥
公钥:加密的方式和机制
秘钥:解密的 方式
爬虫分: 通用爬虫,聚焦爬虫,增量式爬虫
反爬机制: 识别UA,或者短时内访问多次的IP地址,或者同一用户名
多次访问
反反爬机制:UA伪装,IP更换,爬取一次后间歇几秒
requests 模块:
一个基于网络其请求网络模块,用来模拟浏览器发起请求
爬虫流程:
指定URL
进行请求的发送
获取相应数据
持久化存储
、
开发者工具中-network-XHR所对应的请求都是Ajax请请求
爬取项目:
import requests
url="https://movie.douban.com/typerank"
heads={
'User_Agent':'https://movie.douban.com/typerank?type_name=%E7%BA%AA%E5%BD%95%E7%89%87&type=1&interval_id=100:90&action='}
start=input('请输入一个值:')
limit=input('输入数量值:')
#url中的参数需要通过params处理
params={
'type': '1',
'interval_id': '100:90',
'action': '',
'start': start,
'limit': limit #表示ajax每次请求的数据量
}
resp=requests.get(url=url,params=params,headers=headers)
#resp.text() 因为text返回的是字符串,这里是需用json
#Json返回的是序列化好的对象
data=resp.json()
file=open('douban.txt','w',encoding='utf-8')
#dui结果进行索引获取
#对返回结果的分析 利用 json在线 格式化工具
for dic in data:
name=dic["title"]
score=dic['score']
#将么每次迭代的数据永久化存储到指定路径
file.write(name+':'+score+'\n')
print('爬取成功!')