簡體   English   中英

在 Python 中使用 BeautifulSoup 抓取谷歌搜索

[英]Webscraping google search using BeautifulSoup in Python

正在從事一個項目來自動搜索幾千個谷歌搜索,並能夠檢查是否有“未找到結果”並輸入到數組中。

使用 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 文件中

任何幫助將不勝感激,謝謝。

首先,您應該發布完整的錯誤消息,如果您只發布了部分錯誤消息,則無法解決問題。

也就是說,可能導致問題的一件事是您的 url 需要完全合格。

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

事實上,如果你發布了執行代碼時得到的完整錯誤,你會看到類似這樣的內容,這會給你答案:

MissingSchema:無效的 URL 'www.lifehack.org':未提供架構。 也許你的意思是http://www.lifehack.org

一旦你解決了這個問題,你就會遇到另一個問題:

回溯(最近一次調用最后一次):

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

文件 "C:\\bs4__init__.py", line 267, in init elif len(markup) <= 256 and (

類型錯誤:“響應”類型的對象沒有 len()

您的html變量是一個 Response 對象,您不能將其直接傳遞給 BeautifulSoup。 您想傳遞從響應中獲得的文本

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

這個故事的寓意:注意你的錯誤信息,它們是你的向導。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM