xpath爬取豆瓣即将上映电影信息
基础步骤:
- 获取网站页面的HTML代码;
- 处理页面,提取电影名、导演、演员、时长、国家、上映时间等信息
- 将提取的数据保存在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()
若有不足,请多多指教!谢谢