违心岁月 2022-01-14 18:23 采纳率: 100%
浏览 41
已结题

爬取豆瓣网TOP250名单时有数据缺失

最近在学习爬虫,做“获取豆瓣网TOP250名单”这个案例的时候发现有两部电影的年份无法匹配导致无法获取,分别是
疯狂的麦克斯4:狂暴之路 2015年
黑客帝国 1999年
代码如下:

import re
import requests

url = "https://movie.douban.com/top250"
start = 0
myHeaders = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36"
}
while start < 250:
    myParams = {
        "start": start,
        "filter": ""
    }
    resp = requests.get(url, headers=myHeaders, params=myParams)
    getResult = re.finditer('<li>.*?<span class="title">(?P<filmName>.*?)</span>.*?'
                            '<br>.*?(?P<year>\d{4})&nbsp;/&nbsp;(?P<region>.*?)&nbsp;.*?'
                            '<span class="rating_num".*?>(?P<score>.*?)</span>.*?'
                            '<span>(?P<remarkNum>.*?)人评价.*?</li>', resp.text, re.S)
    for ele in getResult:
        print(ele.groupdict())
    start += 25

希望各位赐教,我这个年份匹配这里这么写为什么就只是匹配不到这两部电影的信息呢,其他248部都能获取

  • 写回答

2条回答 默认 最新

  • CSDN专家-showbo 2022-01-14 22:04
    关注

    黑客帝国的上一部电影大闹天宫的上映时间有多个,并不是下面这个正则需要的格式

    .*?(?P<year>\d{4})&nbsp;/&nbsp;
    
    
    

    img


    所以

    
    '<br>.*?(?P<year>\d{4})&nbsp;/&nbsp;
    
    
    

    这部分正则直接匹配到黑客帝国的时间去了,大闹天宫的时间变成黑客帝国的,后续的区域,评分之类都边黑客帝国的,另外一部电影的上一个节点应该也是多个上映时间导致被舍去了。

    正则改下面的就能匹配出来,但是会有空格,换行之类的,需要strip去掉

    img

    getResult = re.finditer('<li>.*?<span class="title">(?P<filmName>.*?)</span>.*?'
                                '<br>.*?(?P<year>.*?)&nbsp;/&nbsp;(?P<region>.*?)&nbsp;.*?'
                                '<span class="rating_num".*?>(?P<score>.*?)</span>.*?'
                                '<span>(?P<remarkNum>.*?)人评价.*?</li>', text, re.S)
    
    for el in getResult:
        d=el.groupdict()
        d['year']=d['year'].strip()#去掉首位空白
        print(d)
    
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月22日
  • 已采纳回答 1月14日
  • 创建了问题 1月14日

悬赏问题

  • ¥15 苹果系统的mac m1芯片的笔记本使用ce修改器使用不了
  • ¥15 单相逆变的电压电流双闭环中进行低通滤波PID算法改进
  • ¥15 关于#java#的问题,请各位专家解答!
  • ¥15 如何卸载arcgis 10.1 data reviewer for desktop
  • ¥15 共享文件夹会话中为什么会有WORKGROUP
  • ¥15 关于#python#的问题:使用ATL02数据解算光子脚点的坐标(操作系统-windows)
  • ¥115 关于#python#的问题:未加密前两个软件都可以打开,加密后只有A软件可打开,B软件可以打开但读取不了数据
  • ¥15 在matlab中Application Compiler后的软件无法打开
  • ¥15 想问一下STM32创建工程模板时遇到得问题
  • ¥15 Fiddler抓包443