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))

三、运行结果:

相关推荐
阿豪学编程13 分钟前
c++ string类 +底层模拟实现
开发语言·c++
MoRanzhi120324 分钟前
亲和传播聚类算法应用(Affinity Propagation)
人工智能·python·机器学习·数学建模·scikit-learn·聚类
金融OG26 分钟前
99.23 金融难点通俗解释:小卖部经营比喻PPI(生产者物价指数)vsCPI(消费者物价指数)
人工智能·python·机器学习·数学建模·金融·数据可视化
是Dream呀1 小时前
Python从0到100(八十六):神经网络-ShuffleNet通道混合轻量级网络的深入介绍
网络·python·神经网络
zxfeng~1 小时前
深度学习之“线性代数”
人工智能·python·深度学习·线性代数
沈韶珺1 小时前
Visual Basic语言的云计算
开发语言·后端·golang
沈韶珺1 小时前
Perl语言的函数实现
开发语言·后端·golang
嘻嘻哈哈的zl2 小时前
初级数据结构:栈和队列
c语言·开发语言·数据结构
wjs20242 小时前
MySQL 插入数据指南
开发语言
美味小鱼2 小时前
Rust 所有权特性详解
开发语言·后端·rust