爬虫-xpath爬取豆瓣即将上映电影信息

143 阅读1分钟

xpath爬取豆瓣即将上映电影信息

基础步骤:

  1. 获取网站页面的HTML代码;
  2. 处理页面,提取电影名、导演、演员、时长、国家、上映时间等信息
  3. 将提取的数据保存在TXT文件中

获取网站页面的HTML代码

import requests
url = "https://movie.douban.com/cinema/nowplaying/chongqing/"
headers = {'user-agent':
               'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36'}
r = requests.get(url, headers=headers)
r.encoding = r.apparent_encoding

使用xpath创建对象

html_code = etree.HTML(r.text)

获取信息

from lxml import etree
upcoming = html_code.xpath('//*[@id="upcoming"]/div[2]/ul/li[@data-title]')
# 写入数据
f = open(file, "w+", encoding='utf-8')
list = []
for li in upcoming:
    movie = {}
    # 电影名
    movie['title'] = li.xpath('@data-title')[0]
    # 时长
    movie['duration'] = li.xpath('@data-duration')[0]
    # 国家
    movie['region'] = li.xpath('@data-region')[0]
    # 导演
    movie['director'] = li.xpath('@data-director')[0]
    # 主演
    movie['actors'] = li.xpath('@data-actors')[0]
    # 上映时间
    movie['wish'] = li.xpath('@data-wish')[0]
    list.append(movie)

写入文档

file = 'moiveMsg.txt'
f = open(file, "w+", encoding='utf-8')
# 将列表中的元素转化为字符串
list2 = [str(i) for i in list]
# 将列表转化为字符串,并且元素之间用换行分割
str1 = '\n'.join(list2)
f.write(str1)
f.close()

若有不足,请多多指教!谢谢