首页 > 其他分享 >使用xpath表达式实现简单的豆瓣电影一周口碑榜数据爬取

使用xpath表达式实现简单的豆瓣电影一周口碑榜数据爬取

时间:2022-10-10 00:00:32浏览次数:55  
标签:xpath title url text 爬取 豆瓣 every doc

# -*- coding: utf-8 -*-
"""
Created on Sat Oct  8 13:09:04 2022

@author: 小徐同学
"""
#使用xpath豆瓣
import requests
from lxml.html import fromstring

base_url = "https://movie.douban.com/"
headers= {"user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.34"}
request = requests.get(url=base_url,headers=headers)
request.encoding = 'utf-8'

#获取每部电影的url并且以列表形式返回
def get_url(html_text):
    doc = fromstring(request.text)
    movies_url_list = doc.xpath("//table/tr/td/a")#返回一个a标签的列表
    if movies_url_list:
        movie_title_urls = [elem.xpath('@href')[0] for elem in movies_url_list]
    return movie_title_urls
#获取每部电影的网页源代码
def get_every_text(movie_title_url):
    request = requests.get(url=movie_title_url,headers=headers)
    request.encoding = 'utf-8'
    every_detail=request.text
    return every_detail
#获取每部电影的导演,演员,片长等详细信息
def get_every_detail_content(every_detail):
    doc = fromstring(every_detail)
    list1 = []
    title = doc.xpath("//*[@id='content']/h1/span[1]/text()")
    list2=[] 
    list1.append(list2)
    list2.append(title)
    director = doc.xpath(".//*[@id='info']/span/span/a[@rel='v:directedBy']/text()")#导演
    actor_and_actress = doc.xpath(".//div[@id='info']/span[@class='actor']/span//a/text()")#演员
    date = doc.xpath(".//div[@id='info']/span[@property='v:initialReleaseDate']/text()")#上映日期
    time_long = doc.xpath(".//div[@id='info']/span[@property='v:initialReleaseDate']/text()")#电影时长
    score = doc.xpath(".//div[@id='interest_sectl']/div/div[@class=contains(rating_self,clearfix)]/strong/text()")#豆瓣评分
    list2.append(director)
    list2.append(actor_and_actress)
    list2.append(date)
    list2.append(time_long)
    list2.append(score)

    print(list1)
    
if __name__=="__main__":
     movie_title_urls = get_url(request.text)
     for url in movie_title_urls:
         every_detail = get_every_text(url)
         get_every_detail_content(every_detail)

 

标签:xpath,title,url,text,爬取,豆瓣,every,doc
From: https://www.cnblogs.com/xjhblogs/p/16774168.html

相关文章

  • 爬取图片信息
    1.图片的加载信息只有两种,(个人认为,目前只遇到过两种)-同步加载-异步加载2.(1)同步加载,在你返回的数据中可以清晰的看到,你所需要的数据全部都在你所打印的respons......
  • scrapy爬取网站图片(静态加载)
    1.创建一个scrapy项目scrapystartgprojecttupiancdtupian创建爬虫文件 scrapygenspiderImagewww.com(域名)后续需要更改         开通pip管......
  • scrapy爬取校花网信息
    校花网的信息资源都可以在我们打印出来的响应对象中找到,所以说,校花网的加载方式是属于静态加载的,所以,我们就可以直接在scrapy框架中的爬虫文件档中将我们所需要的信息全部......
  • 到处裁员,数据分析师还火热吗?爬取了72个城市需求,北京第一
    金九银十求职季已经过半,最近咨询经验的同学也越来越多了,有很多求职、或是转行的同学向我咨询我数据分析师岗位的种种信息。虽然老李我在数据领域待了这么多年,对这个岗位的的......
  • 【python爬虫】 python 爬取知乎的公开收藏夹
    前言看看如何用python爬取知乎的公开收藏夹内容尝试第一个方法开始的时候用python,request库进行的网页请求,在请求你的收藏夹总界面的时候还可以返回信息,这个ur......
  • 爬取的html页面打印时页面中的中文乱码解决方法
    跳转到爬取的html页面会发现默认编码为utf-8,当编辑器默认编码不是utf-8时会出现中文乱码的情况。解决如下:1.在打印前将response的编码格式改为utf-8如:rsponse.encoding="......
  • 【爬虫】XPath实例
    题目要求我们用XPATH去爬某个网站并且保存为CSV文件代码如下,仅供参考#-*-coding:UTF-8-*-#开发人员:萌狼蓝天#博客:Https://mllt.cc#笔记:Https://cnblogs.com/ml......
  • python3爬取CSDN个人所有文章列表页
    前言我之前写了下载单篇文章的接口函数,结合这篇写的,就可以下载所有个人的所有文章了代码实现没什么技术含量就是简单的xpath处理,不过有意思的是有一位csdn员工将自己的博客......
  • 大麦网演唱会信息爬取
    main.pyfromtimeimportsleepfromseleniumimportwebdriverfromselenium.webdriver.common.byimportByfromselenium.webdriver.support.uiimportWebDriverWa......
  • xpath语法基本使用
    fromlxmlimportetree"""lxml是html(超文本标记语言,显示数据)和xml(可扩展标记语言,传输和存储数据)文档的解析器,当我们使用需要用到css选择器或xpath来获取数据时......