01-21 爬虫项目-爬取豆瓣电影的电影详细数据

要点备注

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('爬取成功!')

猜你喜欢

转载自blog.csdn.net/weixin_46400833/article/details/112973478