程序实现目标
用户输入电影类型,如【热门 最新 经典 华语】 可获得此分类排名 Top 100 电影信息(电影名 评分 封面链接)
程序实现工具
星愿浏览器 以chromium为内核,操作方法与 chorme类似
Microsoft Visual Studio
程序设计分析
以 华语电影 为例,抓取此类型的数据,其他电影类型以此类推

华语电影
1. 分析数据来源
通过观察源码中是否有数据,判断是否是动态加载

判断是否是动态加载
进入源代码界面,ctrl + f 搜索一个前端页面中展示出的电影名
例:此处搜索《流浪地球》得到结果为0

数据动态加载
2.查找电影信息位置
网页端按下 F12 调出浏览器的控制台;选择 network,按 F5 刷新

刷新后页面
依次选择 XHR 加载 json 链接 - response

此处可以清楚地看到我们所需的信息
点击 headers,查看其发送的链接地址和方法

关注 Request URL 和 Request Method
将 链接地址 复制到浏览器中加载,可以得到如下内容

华语电影信息
3. 获取更多电影信息
返回 选电影 界面,点击 加载更多 ,观察 链接 的变化

加载前 page_start=0

加载更多

加载后 page_start=20
得到结论:若要 加载更多,只需改变 page_start
程序设计过程
1. 引入所需的包
#coding=ut f-8
import requests
import time
import json
from lxml import etree
2. 创建一个类,并定义 init
(包含 url列表和请求头)
class DoubanMovieSpider:
def __init__(self):
# 定义一个url列表,可以存放各种类别的url链接,这里只存放了华语电影的链接
self.url_list_temp = [
{
"url_temp": "https://movie.douban.com/j/search_subjects?type=movie&tag=%E5%8D%8E%E8%AF%AD&sort=recommend&page_limit=20&page_start={}",
"country": "CN"
}
]
# 定义请求头headers
self.headers = {
"Accept" : "*/*",
"Accept-Encoding" : "gzip, deflate, br",
"Accept-Language" : "zh,zh-TW;q=0.9,en-US;q=0.8,en;q=0.7,zh-CN;q=0.6",
"Connection" : "keep-aliv

该程序使用Python实现,通过分析豆瓣电影网页源码,动态获取不同类型的电影(热门、最新、经典、华语)Top 100的电影信息,包括电影名、评分和封面。通过输入电影类型,程序会自动爬取并展示相应电影数据。程序利用requests库发送HTTP请求,使用json解析数据,同时运用lxml库处理HTML。
最低0.47元/天 解锁文章
2374

被折叠的 条评论
为什么被折叠?



