【问题标题】:Webscraping google search using BeautifulSoup in Python在 Python 中使用 BeautifulSoup 抓取谷歌搜索
【发布时间】:2019-12-27 00:14:26
【问题描述】:

从事一个项目以自动搜索数千个谷歌搜索,并能够检查是否“未找到结果”并输入到数组中。

使用 BeautifulSoup,但我无法通过从 URL 导入 HTML 开始:

from bs4 import BeautifulSoup
import requests

html = requests.get('www.lifehack.org')
soup = BeautifulSoup(html,'html.parser')

软件包安装正常,但出现错误:

MissingSchema                             Traceback (most recent call last)
<ipython-input-28-8e881302fa25> in <module>
      1 from bs4 import BeautifulSoup
      2 import requests
----> 3 html = requests.get('www.lifehack.org')
      4 soup = BeautifulSoup(html,'html.parser')

C:\Program Files (x86)\Anaconda\lib\site-packages\requests\api.py in get(url, params, **kwargs)
     73 
     74     kwargs.setdefault('allow_redirects', True)

+很多类似的东西

我不确定如何解决这个问题。我希望能够快速将 HTML 直接导入程序,而不必复制并保存在本地 HTML 文件中

任何帮助将不胜感激,谢谢。

【问题讨论】:

  • 您“搜索搜索”数以千计?谷歌搜索?您是否考虑过使用 Google 的 API?如果没有 API,我通常会使用 BeautifulSoup 来为一件特定的事情提取数据。您的问题可能与链接相关的重复。你在使用 Python 3 吗? stackoverflow.com/questions/17309288/…
  • 正如@Ant 提到的那样,如果您尝试自动化 Google 搜索结果,您迟早会被 Google 阻止 IP,因为它违反了 ToS。看看 GoogleSearch API。

标签: python web-scraping beautifulsoup google-search-api


【解决方案1】:

首先,您应该发布完整的错误消息,如果您只发布了部分错误消息,则无法解决问题。

也就是说,可能导致问题的一件事是您的网址需要完全限定。

html = requests.get('http://www.lifehack.org')

事实上,如果您发布了执行代码时得到的完整错误,您会看到类似这样的内容,这会给您答案:

MissingSchema:无效的 URL 'www.lifehack.org':未提供架构。 也许你的意思是http://www.lifehack.org

一旦你解决了这个问题,你就会遇到另一个问题:

Traceback(最近一次调用最后一次):

文件“”,第 4 行,在 汤 = BeautifulSoup(html,'html.parser')

文件 "C:\bs4__init__.py", 第 267 行,在 init 中 elif len(标记)

TypeError: 'Response' 类型的对象没有 len()

您的html 变量是一个响应对象,您不能将它直接传递给BeautifulSoup。您想传递从响应中获得的 文本

soup = BeautifulSoup(html.text,'html.parser')

故事的寓意:注意你的错误信息,它们是你的向导。

【讨论】:

    猜你喜欢
    • 2020-10-09
    • 2023-03-29
    • 1970-01-01
    • 2017-07-08
    • 1970-01-01
    • 2020-08-05
    • 1970-01-01
    • 1970-01-01
    • 2021-01-17
    相关资源
    最近更新 更多