爬取豆瓣上的电影

阅读: 评论:0

爬取豆瓣上的电影

爬取豆瓣上的电影

目录

一.那么问题来了,有622条数据,有没有必要一次加载到页面中?

二.解决方案:使用ajax做局部刷新

1.爬取整个界面

2.通过ajax做局部刷新

(1)导入模块

(2)分析接口,总结规律

(3)代码

3.优化代码


豆瓣网址:/

我们想要爬取豆瓣网上分类是剧情的电影

进入官网---->电影----->排行榜----->分类排行榜------>剧情

点击进入

我们会发现满足条件的有622部电影,

一.那么问题来了,有622条数据,有没有必要一次加载到页面中?

答:没有必要

      界面不会把这些电影都给用户展现出来,当我们滑动滚动条的时候,会发现当滑动条快完的时候,滑动条又会变长,自己试一试,体会一下

(1)数据量大,在通信过程中要花费大量的时候,会让用户等待很久,用户体验较差

(2)由于数据量较大,一次加载到内存中会占用大量的内存空间

(3)由于用户只关心前几页的数据,后面的数据如果使用通信得来,或加载到内存江北视为浪费资源

二.解决方案:使用ajax做局部刷新

1.爬取整个界面

url 就是请求的地址

编写代码

import requests
url='=%E5%89%A7%E6%83%85&type=11&interval_id=100:90&action='
response&#(url)
with open('douban.html','w',encoding&#ding) as fp:fp.)

运行程序:

在火狐浏览器上运行响应回来的界面:

没有有关电影的东西

2.通过ajax做局部刷新

(1)导入模块

import requests

(2)分析接口,总结规律

第一页:=11&interval_id=100%3A90&action=&start=0&limit=20

第二页:=11&interval_id=100%3A90&action=&start=20&limit=20

第三页:=11&interval_id=100%3A90&action=&start=40&limit=20

.............................

第n页:=11&interval_id=100%3A90&action=&limit=20&start=str(((n-1)*20))

(3)代码

第一种:直接   +拼接

import requests
for page in range(1,11,1):url='=11&interval_id=100%3A90&action=&limit=20&start='+str((page-1)*20)print('第%s页:'%page,url)response&#(url)for movie in response.json():title=movie['title']address=movie['url']with open('','a',encoding&#ding) as fp:fp.write(title+':'+'t'+address+'n')

第二种:写成json格式

import requestsfor page in range(1, 11, 1):url = ''print('第%s页:'%page,url)data_dic = {'type': '11','interval_id': '100:90','limit': '20','start': str((page - 1) * 20)}response&#(url,data_dic)# print(response.json())for movie in response.json():title=movie['title']address=movie['url']with open('','a',encoding&#ding) as fp:fp.write(title+":t"+address+"n")

运行结果

看吧 爬虫还是挺有用的吧!!!

3.优化代码

爬取数据,能一次性爬完,绝不多次访问

指不定哪天就进不去了,所以能爬的时候都把它爬完

 

import requestsurl = ''
data_dic = {'type': '11','interval_id': '100:90','limit': '622','start': '0'
}
response&#(url,data_dic)
# print(response.json())
for movie in response.json():title=movie['title']address=movie['url']with open('','a',encoding&#ding) as fp:fp.write(title+':t'+address+'n')

运行完后,这622部电影的名字和地址都保存在里面了

本文发布于:2024-02-01 16:30:50,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170677625037957.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:豆瓣   电影
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23