Python 实战requests + xpath爬取豆瓣电影

实战豆瓣电影网

利用requests和xpath爬取电影名,电影成绩,电影演员,电影url

思路:

  1. 确定目标
  2. 发送请求获得html代码
  3. 使用xpath提取数据
  4. 保存数据将获取的数据保存成列表

import requests #导入请求库
from lxml import etree #导入xpath
#确定抓取目标网页
url = “https://movie.douban.com/cinema/nowplaying/jinan/”
#设置请求头
headers = {
‘Referer’:‘https://movie.douban.com/’,
‘User-Agent’:‘Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0’
}
#发送get请求
response = requests.get(url=url,headers=headers)

#获取解析结果
text = response.text

#对数据进行解析

#定义一个空列表用来存储最后的数据
video_infomation = []

#将返回的结果变成属性结构便于xpath语法提取
html = etree.HTML(text)

#查找class=lists的ul元素并将列表值提取出来
ul = html.xpath("//ul[@class=‘lists’]")[0]
lis = ul.xpath("./li")
#遍历列表
for li in lis:
data_title = li.xpath("@data-title")[0]
data_score = li.xpath("@data-score")[0]
data_region=li.xpath("@data-region")[0]
data_actors=li.xpath("@data-actors")[0]
img = li.xpath(".//img/@src")[0]
#将获取到的数据存入字典
video_info = {
‘电影名’:data_title,
‘电影评分’:data_score,
‘电影来源’:data_region,
‘电影主演’:data_actors,
‘电影海报’:img
}
#将字典存在列表中
video_infomation.append(video_info)
#输出这个列表
print(video_infomation)

正常来说应该使用class或者函数来封装使代码规划化,后面的项目就是用class 或者函数来实现,嘻嘻0.0

你可能感兴趣的:(Python,项目爬虫实战)