千禧小白 2020-09-29 22:54 采纳率: 25%
浏览 436
已采纳

python爬虫正则表达式re.findall只能获取众多链接中的一个

想要抓取所发表情里面的所有热门表情的名字和图片链接,但是只能抓取到第一个,如果删掉<div.+?indexbiaoqing.+? 则会返回其他模块表情包(能返回很多链接,但不是我想要的,仔细对照改了改还是不对),希望大佬指点

上代码

from urllib import request
import requests
import re
import time
import os
def main():
    page_url = 'https://www.fabiaoqing.com/'
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36',
        'Cookie': 'PHPSESSID=595p4sic6t2omtl4fod2crj6kt; BAIDU_SSP_lcr=https://www.baidu.com/link?url=oDQDHox9F2MtoMApyh8BoSFQVz_d798fE1MSPPIeCiBbk0_0UksqN0_zvFvDfXoV&wd=&eqid=f372be560001f38e000000025f7315a9; __gads=ID=9b8c836a8fe9b3a1:T=1601385527:S=ALNI_Mavb6ihzHHKTZjw8P1TNcjakvzHrA; UM_distinctid=174da03f66d3fd-000604be2b9b57-333376b-100200-174da03f66e2e3; CNZZDATA1260546685=1101262114-1601380731-https%253A%252F%252Fwww.baidu.com%252F%7C1601380731'}
    resp = requests.get(page_url, headers=headers)
    text = resp.text
    image_urls = re.findall(r' <div.+?indexbiaoqing.+?<div.+?bqppdiv.+?<a.+?data-original="(.+?)".+?>', text, re.VERBOSE | re.DOTALL)[0]  # re.DOTALL表示小圆点也可以表示换行
    print(image_urls)
    names = re.findall(r'<div.+?indexbiaoqing.+?<div.+?bqppdiv.+?<a.+?title="(.+?)">', text, re.VERBOSE | re.DOTALL)  # re.DOTALL表示小圆点也可以表示换行
    print(names)

上关键出错代码
图片说明

上结果
图片说明
上页面代码
图片说明

  • 写回答

2条回答 默认 最新

  • 7*24 工作者 2020-09-30 09:44
    关注

    试一下下面这种

    regex = re.compile('<img class="ui image lazy" data-original="(http://w.*?)".*?alt="(.*?)" style.*?/>')
    for i in re.findall(regex,text):
        print(i)
    

    图片说明

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

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?