XPath+requests库爬取猫眼电影

之前我们用正则表达式 + requests 库 爬取猫眼电影 TOP 100,原文链接在这里:

https://blog.csdn.net/S1998F/article/details/97916617

 

但是正则表达式很复杂,也很难学,我们能不能不用正则表达式匹配想要的内容呢?答案是可以的,这次我们选用 XPath 来解析内容。

 

要获取的内容还是排名、电影海报、电影名称、演员和上映时间,只不过改变了解析方式,那么整个代码中只需要修改 parse_one_page(html) 函数即可。函数修改如下:
 

from lxml import etree


def parse_one_page(html) -> list:
    xpath_obj = etree.HTML(html)    # 构造一个 XPath 解析对象
    index_list = xpath_obj.xpath('//dd/i/text()')
    image_list = xpath_obj.xpath('//dd/a/img/@data-src')
    name_list = xpath_obj.xpath('//dd/a/@title')
    actor_list = xpath_obj.xpath('//dd/div/div/div/p[contains(@class, "star")]/text()')
    time_list = xpath_obj.xpath('//dd/div/div/div/p[contains(@class, "releasetime")]/text()')
    res = []
    for i in range(10):
        tmp = {
            'index': index_list[i],
            'image': image_list[i],
            'name': name_list[i].strip(),
            'actor': actor_list[i].strip(),
            'time': time_list[i].strip(),
        }
        res.append(tmp)
    return res

 

首先要构造一个 XPath 解析对象,然后对这个对象调用 XPath 语法进行解析,经过解析后会生成一个列表,我们把这些列表的内容按序构造成一个字典,使得输出时更加美观。XPath 语法如果不熟悉的话,可以 Google 一下,很容易,几分钟就能学会。

 

总结一下,利用 XPath 进行网页解析会比正则表达式更加简单。

 

ps.如果想要打开新世界的大门,可以扫描下方的二维码,关注微信公众号「SuperFeng」。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值