首页 > 其他分享 >xpath案例-豆瓣top250电影

xpath案例-豆瓣top250电影

时间:2024-10-15 09:32:04浏览次数:5  
标签:xpath title quote li 豆瓣 top250 class

需求:需求:爬取电影名称、评分、引言、详情页的 url,翻页爬取 1-10 页。

代码:

import requests
from lxml import etree

'''
url分析:
  第一页:https://movie.douban.com/top250
  第二页:https://movie.douban.com/top250?start=25&filter=
  第三页:https://movie.douban.com/top250?start=50&filter=
  第四页:https://movie.douban.com/top250?start=75&filter=
url 模型:https://movie.douban.com/top250?start={25 * 页数-1}&filter=

'''


# 获取网页源代码
def getsource(pagelink):
    response = requests.get(url=pagelink, headers=headers)
    response.encoding = 'utf-8'
    html = response.text
    return html

# 用于解析数据
def getitem(html):
    element = etree.HTML(html)
    movieitemlist = element.xpath('//li//div[@class="info"]')
    # 定义一个列表,用于存放25条数据
    li = []

    for i in movieitemlist:
        dic = {}

        title = i.xpath('./div[@class="hd"]/a/span[@class="title"]/text()')
        title = ''.join(title).replace('\xa0', '')

        othertitle = i.xpath('./div[@class="hd"]/a/span[@class="other"]/text()')
        othertitle = ''.join(othertitle).replace('\xa0', '')

        # 名称
        title = title + othertitle

        # 评分
        grade = i.xpath('./div[@class="bd"]/div[@class="star"]/span[@class="rating_num"]/text()')[0]

        # 详情页的 url
        link = i.xpath('div[@class="hd"]/a/@href')[0]

        # 引言
        quote = i.xpath('./div[@class="bd"]/p[@class="quote"]/span/text()')

        if quote:
            quote = quote[0]
        else:
            quote = None

        dic['title'] = title
        dic['grade'] = grade
        dic['link'] = link
        dic['quote'] = quote

        li.append(dic)

    return li


# 用于保存数据
def writedata(li):
    pass

if __name__ == '__main__':
    all = []

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

    for i in range(0, 10):
        url = f'https://movie.douban.com/top250?start={25 * i}&filter='
        html = getsource(url)
        li = getitem(html)
        all += li

    print(len(all), all)

标签:xpath,title,quote,li,豆瓣,top250,class
From: https://www.cnblogs.com/tudigong/p/18466787

相关文章

  • 数据解析 - xpath 语法
    1、基础语法(1)/说明:从根节点开始。示例:/html/body(2)//说明:选择匹配的任何位置。示例://input(3).说明:当前节点。(4)..说明:父节点。(5)@说明:选择属性。示例://*[@id="kw"]#表示选择具备id="kw"属性的节点(6)[node]说明:选择所有node子元素。(7)[@attr]说明:选取带有attr属......
  • 【python爬虫案例】利用python爬取豆瓣音乐评分TOP250的排行数据!
    一、爬取案例-豆瓣音乐TOP250之前给大家分享了2个豆瓣的python爬虫案例:【python爬虫案例】利用python爬虫爬取豆瓣电影评分TOP250排行数据!【python爬虫案例】利用python爬虫爬取豆瓣读书评分TOP250的排行数据! 今天再给大家分享一下:豆瓣音乐排行榜TOP250的python爬虫案例!爬......
  • 使用Python异步抓取豆瓣电影数据并进行可视化
    一前言在本篇文章中,我们将探讨如何使用Python的asyncio和aiohttp库来异步抓取豆瓣电影Top250中的电影数据,并将这些数据保存到CSV文件中,最后使用matplotlib库对评分趋势进行可视化。目标网站:https://movie.douban.com/top250二环境准备首先确保你的环境中已经安装了......
  • # 使用Python爬虫抓取豆瓣电影标题# 使用Python爬虫抓取豆瓣电影标题
    一、前言在这个小项目中,我们将学习如何使用Python的requests库和lxml库来爬取豆瓣电影首页上的电影标题,并将这些标题保存到一个文本文件中。这不仅能够帮助我们了解基本的网页抓取技术,还能让我们熟悉数据处理的基本流程。二、环境准备确保你的开发环境中已经安装了以下Py......
  • xpath解析数据
    节点的关系:父子同胞先辈后代常用路径表达式表达式描述nodename选取此节点的所有子节点/从根节点选取//从匹配选择的当前节点中选择文档的节点.获取当前节点..选取当前节点的父节点@选择属性通配符通配符描述*匹配任何元素节点......
  • 计算机专业毕设选题推荐-基于大数据的豆瓣图书数据分析【python-爬虫-大数据定制】
    ......
  • 16 JSON 爬虫【反序列化】豆瓣
    #没有安装requests模块,需要安装此模块pip3installrequestsimportjsonimportrequestsres=requests.get(url='https://movie.douban.com/j/search_subjects?type=tv&tag=%E7%83%AD%E9%97%A8&page_limit=50&page_start=0',headers={......
  • XPath【详细解读,持续更新中】
    目录XPath是什么呢?Xpath的核心功能与特点XPath的应用XPath中的路径表达式与节点以及相关语法XPath中的节点XPath中的其他节点术语节点间的关系XPath路径表达式的语法选取节点谓语(Predicates)选取未知节点选取若干路径XPath中的轴(Axes)  轴的相关案例XPath运算......
  • 一文搞懂XPath查找html dom
     博主介绍: 大家好,我是Yuperman,互联网宇宙厂经验,17年医疗健康行业的码拉松奔跑者,曾担任技术专家、架构师、研发总监负责和主导多个应用架构。技术范围: 目前专注java体系,以及golang、.Net、软件架构、DDD、微服务、redis、nginx、tomcat、mysql、oracle等业务范围: 从数字医......
  • 【python爬虫案例】利用python爬取豆瓣读书评分TOP250排行数据
    一、爬取案例-豆瓣读书TOP250上一期给大家分享了个python爬虫案例:豆瓣电影TOP250的排行榜数据爬取【python爬虫案例】利用python爬虫爬取豆瓣电影评分TOP250排行数据!今天再给大家分享一下:豆瓣读书排行榜TOP250的python爬虫案例!因为是同一个网站,所以流程和逻辑上都是差不多的。......