使用beautifulsoup爬取数据.string为空

img

开始是这样有结果输出,为a标签的源代码

img

img


想要输出标签的内容,所以使用.string(text也没用)但报错,a标签的属性也无法输出.attrs也没用

img

img


到底是什么问题

你这提示是说就没获取到内容,当然.text出不来东西,你拆开写,都打印一下,如果同一次结果中上面的a能打印出来东西,这里肯定也能。

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自chatgpt:

    问题描述: 我正在使用BeautifulSoup爬取数据,成功获取了一些a标签的源代码,但是我想要输出它们的文本内容。我尝试使用.string属性和.text属性,但是都遇到了报错。我还尝试使用.attrs属性直接输出标签的属性,但是也没有成功。请问我该如何解决这个问题?

    解决方案: 1. 确认获取到的源代码是否包含需要的文本内容。 - 使用BeautifulSoup解析HTML页面时,需要搭配使用合适的解析器,例如lxml或html.parser。 - 使用print()函数打印获取到的源代码,检查是否包含需要的文本内容。

    1. 确认a标签是否存在.text或.string属性。
    2. 有些标签并不支持.text或.string属性,需要通过其他方式获取标签的文本内容。
    3. 使用.find_next().find_all()方法查找匹配标签并获取文本内容。

    示例代码:

    import requests
    from bs4 import BeautifulSoup
    
    # 发送请求获取HTML页面
    response = requests.get('http://www.example.com')
    html = response.text
    
    # 利用BeautifulSoup解析HTML页面
    soup = BeautifulSoup(html, 'lxml')
    
    # 查找所有a标签
    a_tags = soup.find_all('a')
    
    # 遍历a标签列表,输出a标签的文本内容
    for tag in a_tags:
        # 判断标签是否有.text属性
        if tag.text:
            print(tag.text)
        # 若没有.text属性,则查找下一个标签
        else:
            text = tag.find_next(text=True)
            print(text)
    

    如果以上方法依然不能解决您的问题,可能是由于HTML页面的结构变化或其他原因导致的问题。此时建议您重新审视问题,或尝试在相关社区或论坛发帖询问其他专家的意见。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^