微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

AttributeError: 'NoneType' 对象在使用 BeautifulSoup 时没有属性 'text'

如何解决AttributeError: 'NoneType' 对象在使用 BeautifulSoup 时没有属性 'text'

我正在运行 YouTube 教程中的以下代码,但是当我想从 .totalcount 类中获取文本时,出现了 nonetype Object has no attribute "text" 错误

实际上在教程视频中它起作用了。有什么帮助吗?如果在细节上那将是很棒的。提前致谢。

url = "https://newyork.craigslist.org/"
site = requests.get(url)
soup = BeautifulSoup(site.text,"html.parser")

sub_link = soup.select("#jjj0 a")
for l in sub_link:
    jobcat = l.text
    joburl = "https://newyork.craigslist.org/" + l.get("href")
    #print(joburl)
    r = requests.get(joburl)
    soup2 = BeautifulSoup(r.text,"html.parser")
    #for total in soup2.select_one("span",class_ = "totalcount"):
        #print(total)
    total = soup2.select_one(".totalcount").text
    #total  = soup2.find("span",class_ = "totalcount").text.strip()

    print(total)

解决方法

我尝试运行您的代码并取消注释 joburl 的打印语句。

在第一次迭代时,它显示

https://newyork.craigslist.org//d/accounting-finance/search/acc

注意它在基础部分 https://newyork.craigslist.org 后面有一个双斜线。

在浏览器中打开它会显示一个 404 Not Found 页面。

许多网络服务器会(方便地)为您解析 URL 中的多个斜杠——从而避免可能出现的此类烦人的情况。这个网站好像没有。

解决方法是去掉这一行的尾部斜线:

joburl = "https://newyork.craigslist.org/" + l.get("href")

但最好将其从您定义文件顶部的基础 url 的位置删除。

以下工作:

from bs4 import BeautifulSoup

import requests

url = "https://newyork.craigslist.org"
site = requests.get(url)
soup = BeautifulSoup(site.text,"html.parser")

sub_link = soup.select("#jjj0 a")
for l in sub_link:
    jobcat = l.text
    joburl = url + l.get("href")
    # print(joburl)
    r = requests.get(joburl)
    soup2 = BeautifulSoup(r.text,"html.parser")
    total = soup2.select_one(".totalcount").text
    print(total)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?