爬虫简单入门实战项目:用正则表达式爬取猫眼电影排行

本文介绍了使用Python的requests和re库,通过正则表达式爬取猫眼电影TOP100的电影信息,包括电影名称、主演和上映时间。项目从初步分析网页结构,构造分析器,爬取所有页面,到保存和展示结果,详细讲解了爬虫的实现过程。虽然正则表达式解析相对不便,但作为入门练习非常合适,文章也提到更高级的解析库如BeautifulSoup和Xpath。
摘要由CSDN通过智能技术生成

  今天学习了《python3网络爬虫开发实战》的正则表达式部分,紧接着是一个爬虫小项目:爬取猫眼电影排行,看着没什么难度,就想自己来独立完成这个项目,部分参考了书上的代码。

项目目标

利用正则表达式抓取猫眼电影TOP100电影信息并保存。

用到的库

requests库、re库

初步分析

猫眼电影TOP100 的链接地址是https://maoyan.com/board/4,打开以后是这样的:
猫眼TOP100
把它拉到最下方,是有分页的,点击第二页:
在这里插入图片描述
我们可以看到页面的URL变成了https://maoyan.com/board/4?offset=10,由此可以推测出改变offset就可以改变页面显示的电影(读者可以自行在URL上任意修改数字),offset=n的时候,页面显示排名第n~n+10的电影,所以,我们通过改变offset的值可以抓取所有的页面。

获取单页

首先要获取到页面,这里使用requests库。

import requests as req
def get_one_page(url):
    #设置headers伪造浏览器信息
    headers = {
   "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36"}
    #获取页面
    response = req.get(url, headers=headers)
    #状态码200代表成功
    if 200 == response.status_code:
        return response.text
    return None

构造分析器

首先我们要查看网页的源代码(Ctrl+U):
在这里插入图片描述
可以看到:一部电影的信息是夹在 <dd>....</dd>标签中间的,同理,我们可以找到电影的名称、主演、上映时间等信息。

接下来要构造函数来分析这个页面,用到了re库。

import re
def parse_one_page(html):
    #找到所有的电影
    films = re.findall('<dd>.*?</dd>', html, re.S)
    films_info = []
    for film in films:
        film_info = {
   }
        #利用正则表达式获取电影的各种信息
        ranking = re.search('<i class="board-index.*?>(\d+)</i>', film, re
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值