【问题标题】:AttributeError: 'NoneType' object has no attribute 'get' - get.("href")AttributeError: \'NoneType\' 对象没有属性 \'get\' - get.(\"href\")
【发布时间】:2022-08-10 03:04:10
【问题描述】:

嗨,我想从 \"href\" 获取 url 我收到一个错误 - AttributeError: \'NoneType\' object has no attribute \'get\'

website = soup.find_all(\'a\', {\'class\':\'Lwqic Cj b\'})

网站返回

    [<a class=\"Lwqic Cj b\" href=\"/Restaurant_Review-g186390-d4925659-Reviews-Jasmine_Garden-Guildford_Surrey_England.html\" target=\"_blank\">Jasmine Garden</a>,
 <a class=\"Lwqic Cj b\" href=\"/Restaurant_Review-g580430-d15572434-Reviews-Beit_Beirut-Woking_Surrey_England.html\" target=\"_blank\">1<!-- -->. <!-- -->Beit Beirut</a>,
 <a class=\"Lwqic Cj b\" href=\"/Restaurant_Review-g580430-d14045954-Reviews-Bacaro-Woking_Surrey_England.html\" target=\"_blank\">2<!-- -->. <!-- -->Bacaro</a>,
 <a class=\"Lwqic Cj b\" href=\"/Restaurant_Review-g2054936-d6607802-Reviews-Pasha-Chobham_Surrey_England.html\" target=\"_blank\">3<!-- -->. <!-- -->Pasha</a>,
 <a class=\"Lwqic Cj b\" href=\"/Restaurant_Review-g504169-d19092676-Reviews-Indian_Panorama-East_Molesey_Molesey_Surrey_England.html\" target=\"_blank\">4<!-- -->. <!-- -->Indian Panorama</a>,
 <a class=\"Lwqic Cj b\" href=\"/Restaurant_Review-g580430-d21305280-Reviews-Everest_Spice-Woking_Surrey_England.html\" target=\"_blank\">5<!-- -->. <!-- -->Everest Spice</a>,
 <a class=\"Lwqic Cj b\" href=\"/Restaurant_Review-g1765387-d23486824-Reviews-Samsara_Warlingham-Warlingham_Surrey_England.html\" target=\"_blank\">Samsara Warlingham</a>,
 <a class=\"Lwqic Cj b\" href=\"/Restaurant_Review-g186390-d14133484-Reviews-Raviz-Guildford_Surrey_England.html\" target=\"_blank\">6<!-- -->. <!-- -->Raviz</a>,
 <a class=\"Lwqic Cj b\" href=\"/Restaurant_Review-g504164-d20963857-Reviews-Mullans-Camberley_Surrey_England.html\" target=\"_blank\">7<!-- -->. <!-- -->Mullans</a>,
 <a class=\"Lwqic Cj b\" href=\"/Restaurant_Review-g580409-d10298057-Reviews-Saffron_Summer-Chessington_Surrey_England.html\" target=\"_blank\">8<!-- -->. <!-- -->Saffron Summer</a>,
 <a class=\"Lwqic Cj b\" href=\"/Restaurant_Review-g4178713-d2232188-Reviews-The_Red_Lion_Inn-Shamley_Green_Guildford_Surrey_England.html\" target=\"_blank\">9<!-- -->. <!-- -->The Red Lion Inn</a>,
 <a class=\"Lwqic Cj b\" href=\"/Restaurant_Review-g504164-d14109929-Reviews-Tandoori_Treats-Camberley_Surrey_England.html\" target=\"_blank\">10<!-- -->. <!-- -->Tandoori Treats</a>,
 <a class=\"Lwqic Cj b\" href=\"/Restaurant_Review-g504181-d23463070-Reviews-Veeno_Reigate-Reigate_Surrey_England.html\" target=\"_blank\">11<!-- -->. <!-- -->Veeno Reigate</a>,
 <a class=\"Lwqic Cj b\" href=\"/Restaurant_Review-g504170-d21298426-Reviews-Yaadein_Restaurant-Epsom_Surrey_England.html\" target=\"_blank\">12<!-- -->. <!-- -->Yaadein Restaurant</a>,
 <a class=\"Lwqic Cj b\" href=\"/Restaurant_Review-g504170-d19849247-Reviews-Pizzerium-Epsom_Surrey_England.html\" target=\"_blank\">13<!-- -->. <!-- -->Pizzerium</a>,
 <a class=\"Lwqic Cj b\" href=\"/Restaurant_Review-g477981-d11994760-Reviews-Wagamama-Staines_Surrey_England.html\" target=\"_blank\">14<!-- -->. <!-- -->Wagamama</a>,
 <a class=\"Lwqic Cj b\" href=\"/Restaurant_Review-g190796-d4072239-Reviews-Tony_Parkin_at_The_Tudor_Room-Egham_Surrey_England.html\" target=\"_blank\">15<!-- -->. <!-- -->Tony Parkin at The Tudor Room</a>,
 <a class=\"Lwqic Cj b\" href=\"/Restaurant_Review-g190796-d3454122-Reviews-The_Beehive-Egham_Surrey_England.html\" target=\"_blank\">16<!-- -->. <!-- -->The Beehive</a>,
 <a class=\"Lwqic Cj b\" href=\"/Restaurant_Review-g191265-d5027476-Reviews-Zeno_Restaurant-Horley_Surrey_England.html\" target=\"_blank\">17<!-- -->. <!-- -->Zeno Restaurant</a>,
 <a class=\"Lwqic Cj b\" href=\"/Restaurant_Review-g186390-d7178046-Reviews-Turtle_Bay_Guildford-Guildford_Surrey_England.html\" target=\"_blank\">18<!-- -->. <!-- -->Turtle Bay - Guildford</a>,
 <a class=\"Lwqic Cj b\" href=\"/Restaurant_Review-g635924-d2715188-Reviews-Cyder_House_Inn-Godalming_Surrey_England.html\" target=\"_blank\">19<!-- -->. <!-- -->Cyder House Inn</a>,
 <a class=\"Lwqic Cj b\" href=\"/Restaurant_Review-g191265-d17712596-Reviews-Shiraz_Bar_Mediterranean_Restaurant-Horley_Surrey_England.html\" target=\"_blank\">20<!-- -->. <!-- -->Shiraz Bar &amp; Mediterranean Restaurant</a>,
 <a class=\"Lwqic Cj b\" href=\"/Restaurant_Review-g504169-d10292747-Reviews-Mezzet-East_Molesey_Molesey_Surrey_England.html\" target=\"_blank\">21<!-- -->. <!-- -->Mezzet</a>,
 <a class=\"Lwqic Cj b\" href=\"/Restaurant_Review-g659590-d2394441-Reviews-The_Barn_at_Alfold-Cranleigh_Surrey_England.html\" target=\"_blank\">22<!-- -->. <!-- -->The Barn at Alfold</a>,
 <a class=\"Lwqic Cj b\" href=\"/Restaurant_Review-g504171-d1873567-Reviews-Yiayias_at_The_Fox-Farnham_Surrey_England.html\" target=\"_blank\">23<!-- -->. <!-- -->Yiayias at The Fox</a>,
 <a class=\"Lwqic Cj b\" href=\"/Restaurant_Review-g635924-d14171401-Reviews-Acorn_Restaurant-Godalming_Surrey_England.html\" target=\"_blank\">24<!-- -->. <!-- -->Acorn Restaurant</a>,
 <a class=\"Lwqic Cj b\" href=\"/Restaurant_Review-g477981-d10486708-Reviews-Turtle_Bay_Staines-Staines_Surrey_England.html\" target=\"_blank\">25<!-- -->. <!-- -->Turtle Bay - Staines</a>,
 <a class=\"Lwqic Cj b\" href=\"/Restaurant_Review-g186390-d20313602-Reviews-Shah_s_Secreto-Guildford_Surrey_England.html\" target=\"_blank\">26<!-- -->. <!-- -->Shah\'s Secreto</a>,
 <a class=\"Lwqic Cj b\" href=\"/Restaurant_Review-g504181-d1393083-Reviews-New_Gurkha_Kitchen-Reigate_Surrey_England.html\" target=\"_blank\">27<!-- -->. <!-- -->New Gurkha Kitchen</a>,
 <a class=\"Lwqic Cj b\" href=\"/Restaurant_Review-g580430-d18905041-Reviews-Daarna-Woking_Surrey_England.html\" target=\"_blank\">28<!-- -->. <!-- -->Daarna</a>,
 <a class=\"Lwqic Cj b\" href=\"/Restaurant_Review-g504169-d7221903-Reviews-Mezzet_Dar-East_Molesey_Molesey_Surrey_England.html\" target=\"_blank\">29<!-- -->. <!-- -->Mezzet Dar</a>,
 <a class=\"Lwqic Cj b\" href=\"/Restaurant_Review-g186390-d3245160-Reviews-Positano-Guildford_Surrey_England.html\" target=\"_blank\">30<!-- -->. <!-- -->Positano</a>]

当我跑步时

for site in website:
site
url = site.find(\'a\', {\'class\':\'Lwqic Cj b\'}).get(\'href\')
url

url 返回错误 - AttributeError: \'NoneType\' object has no attribute \'get\'

  • find 在找不到元素时返回 None,因此您要搜索的元素不存在。
  • 你可以通过 Scrapy 运行它吗?也许获取 Xpath 可能会返回您的元素。 \"a[@class=\"Lwqic Cj b\"]\"
  • 您可能遇到最常见的问题:页面可能使用JavaScript 添加/更新元素,但BeautifulSoup/lxmlrequests/urllib 无法运行JS。您可能需要Selenium 来控制可以运行JS 的真实网络浏览器。或者在Firefox/Chrome(标签Network)中使用(手动)DevTools 来查看JavaScript 是否从某个URL 读取数据。并尝试将此 URL 与 requests 一起使用。 JS 通常会得到JSON,它可以很容易地转换为 Python 字典(没有 BS)。您还可以检查页面是否有(免费)API 供程序员使用。
  • 如果您找到带有find_all() 的元素,那么您不需要site.find().get(),而只需要site.get(),因为sind.find() 将在当前&lt;a&gt; 中搜索另一个&lt;a&gt; &lt;a&gt; - 这是错误的

标签: python beautifulsoup python-requests


【解决方案1】:

如果您发现所有元素都带有find_all(),那么您不需要find(),而是直接使用site.get()

使用site.find() 在当前内部搜索新的 - 这是错误的。

website = soup.find_all('a', {'class':'Lwqic Cj b'}) 

for site in website:
    url = site.get('href')
    print(url)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-21
    • 2020-01-25
    • 2019-08-14
    • 1970-01-01
    • 1970-01-01
    • 2021-01-02
    相关资源
    最近更新 更多