python爬虫爬取豆瓣电影信息城市_Python爬虫爬取豆瓣电影之数据提取值

工具:Python 3.6.5、PyCharm开发工具、Windows 10 操作系统、谷歌浏览器

目的:爬取豆瓣电影排行榜中电影的title、链接地址、图片、评价人数、评分等

语法要点:

xpath语法:

谷歌浏览器安装 xpath helper插件:帮助我们从elements中定位数据

1、选择节点(标签)

(1)、/html/head/meta:能够选中html下的所有的meta标签

(2)、//li:当前页面上的所有的li标签

(3)、/html/head//link:head下的所有link标签

2、//:能够从任意节点开始选择

(1)、//li:当前页面上的所有的li标签

(2)、/html/head//link:head下的所有的link标签

3、@符号的用途

(1)、选择具体某个元素://div[@class='feed']/ul/li,选择class='feed'的div下的ul下的li

(2)、a/@href:选择a的href的值

4、获取文本

(1)、/a/text():获取a下的文本

(2)、/a//text():获取a下的所有文本

示例:

lxml语法:

1、安装:pip install lxml

2、使用

from lxml import etree

element = etree.HTML("html字符串")

element.xpath("")

代码:1 from lxml import etree

2 import requests

3

4 url = "https://movie.douban.com/chart"

5

6 headers = {

7 "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.81 Safari/537.36"

8 }

9 response = requests.get(url,headers=headers)

10 html_str = response.content.decode()

11

12 #print(html_str)

13

14 html = etree.HTML(html_str)

15 print(html)

16

17 #1.获取所有的电影的URL地址

18 #url_list = html.xpath("//div[@class='indent']/div/table//div[@class='pl2']/a/@href")

19 #print(url_list)

20

21 #2.所有图片的地址

22 #img_list = html.xpath("//div[@class='indent']/div/table//a[@class='nbg']/img/@src")

23 #print(img_list)

24 ret1 = html.xpath("//div[@class='indent']/div/table")

25 print(ret1)

26 for table in ret1:

27 item = {}

28 item["title"] = table.xpath(".//div[@class='pl2']/a/text()")[0].replace("/","").strip()

29 item["href"] = table.xpath(".//div[@class='pl2']/a/@href")[0]

30 item["img"] = table.xpath(".//a[@class='nbg']/img/@src")[0]

31 item["comment_num"] = table.xpath(".//span[@class='pl']/text()")[0]

32 item["rating_num"] = table.xpath(".//span[@class='rating_nums']/text()")[0]

33 print(item)

34

运行效果:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值