Python爬虫:XPath解析爬取豆瓣电影Top250示例

一、示例的函数说明:

函数processing():用于处理字符串中的空白字符,并拼接字符串。

主函数程序入口:每页显示25部影片,实现循环,共10页。通过format方法替换切换的页码的url地址。然后调用实现爬虫程序的函数get_movie_info(),获取电影信息。

二、示例代码:

python 复制代码
from lxml import etree
import time
import random
import requests

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) '
                  'Chrome/117.0.0.0 Safari/537.36'
}


def processing(strs):
    s = ''
    for n in strs:
        n = ''.join(n.split())
        s = s + n
    return s


def get_movie_info(url):
    response = requests.get(url, headers=headers)
    html = etree.HTML(response.text)
    div_all = html.xpath('//div[@class="info"]')
    for div in div_all:
        names = div.xpath('./div[@class="hd"]/a//span/text()')
        name = processing(names)
        infos = div.xpath('./div[@class="bd"]/p/text()')
        info = processing(infos)
        score = div.xpath('./div[@class="bd"]/div/span[2]/text()')
        evaluation = div.xpath('./div[@class="bd"]/div/span[4]/text()')
        summary = div.xpath('./div[@class="bd"]/p[@class="quote"]/span/text()')
        print('电影名称:', name)
        print('导演与演员:', info)
        print('影片评分:', score)
        print('评价人数:', evaluation)
        print('影片总结:', summary)
        print('-------分割线-------')


if __name__ == '__main__':
    for i in range(0, 250, 25):
        url = 'https://movie.douban.com/top250?start={page}&filter='.format(page=i)
        get_movie_info(url)
        time.sleep(random.randint(1, 3))

三、运行结果:

相关推荐
艾上编程5 分钟前
《Python实战小课:数据分析场景——解锁数据洞察之力》导读
python·数据挖掘·数据分析
Lyinj6 分钟前
从一个编辑校验问题谈接口设计的边界
java·spring boot·python·学习
消失的旧时光-19436 分钟前
Java 线程通信:彻底理解 wait / notify(原理 + 图解 + 实战)
java·开发语言
纪伊路上盛名在7 分钟前
文献阅读自动化1-批量检索、更新文献
python·自动化·文献阅读·科研日常·流程化
梦白.8 分钟前
Python字符串类型
linux·python
gf132111112 分钟前
python_图片、字幕文本、音频一键组合
python·音视频·swift
查拉图斯特拉面条17 分钟前
UI自动化断言完全指南:从基础到高级的断言表达式实战
python·自动化
yy我不解释37 分钟前
关于comfyui的comfyui-prompt-reader-node节点(import failed)和图片信息问题(metadata)
python·ai作画·prompt
Coder_Boy_38 分钟前
【DDD领域驱动开发】基础概念和企业级项目规范入门简介
java·开发语言·人工智能·驱动开发