BeautifulSoup和请求模块NoneType错误

时间:2018-11-05 16:49:50

标签: python python-3.x beautifulsoup python-requests

我已经尝试了几天的请求和bs4模块。我想制作一个类似于Google的“我很幸运”的简单程序。

这是我的代码:

import requests, bs4, webbrowser

source=requests.get('https://www.google.com/search?q=facebook').text

exsoup=bs4.BeautifulSoup(source, 'lxml')
# <cite class="iUh30">https://www.facebook.com/</cite>
match=exsoup.find('cite', class_='iUh30')

print(match.text)

但是当我运行它时,出现以下错误:

    print(match.text)
AttributeError: 'NoneType' object has no attribute 'text'

我该如何做?

2 个答案:

答案 0 :(得分:1)

尝试迭代类似这样的内容,但不包括class_属性:

match=exsoup.find_all('cite')

for i in match:
    if 'http' in i.text:
        print(i.text)

答案 1 :(得分:0)

问题似乎是,与使用请求库进行访问时相比,使用浏览器访问该网站的结果有所不同。您可以尝试指定标题(我从以下示例中选取了这个示例:https://stackoverflow.com/a/27652558/9742036

headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'}

source = requests.get('https://www.google.com/search?q=facebook', headers=headers).text

,源代码看起来更像是您对浏览器的访问。

否则,您的代码可以正常工作。在原始匹配中您没有获得任何结果,因此应该编写代码来处理这种情况(例如,在其他答案中使用迭代器建议。)