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

三、运行结果:

相关推荐
麦麦鸡腿堡8 分钟前
Java绘图技术
java·开发语言
热爱编程的OP10 分钟前
Linux进程池与管道通信详解:从原理到实现
linux·开发语言·c++
iamohenry1 小时前
古早味的心理咨询聊天机器人
python·自然语言处理
Blossom.1185 小时前
移动端部署噩梦终结者:动态稀疏视觉Transformer的量化实战
java·人工智能·python·深度学习·算法·机器学习·transformer
AiXed5 小时前
PC微信协议之AES-192-GCM算法
前端·数据库·python
灵光通码6 小时前
神经网络基本概念
python·神经网络
武子康7 小时前
Java-171 Neo4j 备份与恢复 + 预热与执行计划实战
java·开发语言·数据库·性能优化·系统架构·nosql·neo4j
Petrichor_H_7 小时前
DAY 31 文件的规范拆分和写法
python
怪兽20148 小时前
fastjson在kotlin不使用kotlin-reflect库怎么使用?
android·开发语言·kotlin
ClearLiang8 小时前
Kotlin-协程的挂起与恢复
开发语言·kotlin