博客雲 2024-09-04 00:00 采纳率: 60%
浏览 2

findAll(’img’)输出是空白的组,把img换成其他的标签都能输出对应的HTML

import requests
from bs4 import BeautifulSoup
headers = {
        'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0'
          }
url = 'https://tieba.baidu.com/photo/p?kw=%E9%BB%91%E7%A5%9E%E8%AF%9D&tid=8542173089&pic_id=98f169124954092385221b4fd458d109b3de497d#!/pid98f169124954092385221b4fd458d109b3de497d/pn1'
response = requests.get(url, headers=headers).text
soup = BeautifulSoup(response,'html.parser')
# findAll就是找不到img标签
content = soup.findAll('img')
print(content)

#输出的是空白组
[]

soup.findAll('img')输出的是空白的,把img换成其他标签都能输出对应的HTML,为什么只有img标签输出的是空白的?

  • 写回答

1条回答 默认 最新

  • 吃不了席 2024-09-04 00:01
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    要解决这个问题,我们首先需要了解findall()方法在处理HTML文档时的工作方式。这个方法会遍历所有的HTML元素,并返回一个包含所有匹配项的列表。

    在这个特定的例子中,问题在于findall()方法默认搜索所有<img>标签,但并没有对它们进行任何操作或者解析。因此,当它遇到这些标签时,它会返回一个空列表。

    为了解决这个问题,我们可以尝试修改findall()的方法参数,使其只查找我们需要的标签。例如,如果我们想要找到所有带有特定类名的标签,可以这样设置:

    for tag in soup.find_all(class_='my_class'):
        print(tag)
    

    在这里,class_='my_class'是我们想要查找的类名。这将仅返回具有指定类名的所有<img>标签。

    注意:这个例子中的class_='my_class'是一个字符串,如果你需要的是一个包含多个类名的列表,你需要在括号内用逗号分隔它们,例如class_='my_class1 my_class2'

    评论

报告相同问题?

问题事件

  • 创建了问题 9月4日

悬赏问题

  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见
  • ¥15 一共有五道问题关于整数幂的运算还有房间号码 还有网络密码的解答?(语言-python)
  • ¥20 sentry如何捕获上传Android ndk 崩溃
  • ¥15 在做logistic回归模型限制性立方条图时候,不能出完整图的困难
  • ¥15 G0系列单片机HAL库中景园gc9307液晶驱动芯片无法使用硬件SPI+DMA驱动,如何解决?