刮谷歌的搜索结果片断
我试图写一个小程序,你输入搜索查询时,它会打开浏览器中的使用结果,然后刮谷歌的搜索结果,并打印它,我不知道我会去做刮擦部分。这一切到目前为止:刮谷歌的搜索结果片断
import webbrowser
query = input("What would you like to search: ")
for word in query:
query = query + "+"
webbrowser.open("https://www.google.com/search?q="+query)
让我们说他们说类型:“谁是唐纳德特朗普?” 他们的浏览器将打开,这将显示: donald trump search result
我怎么会一起去,并通过刮维基百科提供的摘要,然后有它打印回给用户?或者在任何情况下刮去网站上的任何数据?
虽然有真的挺你可以抽取数据的几种方法中,我使用了一个名为BeautifulSoup
库证明了这一点。我相信这比使用webbrowser
来抓取数据要灵活得多。不要担心,如果这对你来说看起来很新,我会引导你完成这些步骤。
您需要
BeautifulSoup
和
requests
模块。如果你没有它们,
用pip安装它们。
导入模块:
import requests
from bs4 import BeautifulSoup
获取用户输入并保存到一个变量:
query = input("What would you like to search: ")
query = query.replace(" ","+")
query = "https://www.google.com/search?q=" + query
使用requests
模块发送GET请求主机:
r = requests.get(query)
html_doc = r.text
实例化一个BeautifulSoup
对象:
soup = BeautifulSoup(html_doc, 'html.parser')
最后刮所需的文本:
for s in soup.find_all(id="rhs_block"):
print(s.text)
通知的ID。此ID是Google放入所有代码段文本的容器。通过这种方式,它会将所有在该容器中找到的文本全部吐出,但当然,您可以将其格式化为看起来更整齐一些。
顺便说一下,如果碰巧碰到UnicodeEncodeError
,则必须在每个text
属性的末尾附加.encode('utf-8')
。
让我知道你是否还有其他问题。干杯!
谢谢!!!!!! – uberdr3eam
你说的是从Wikipedia.com刮数据或刮小片段谷歌给你提供* *维基百科? – Mangohero1
的片段将是首选,因为它提供了一个基本的总结,这一切我需要/ – uberdr3eam
我不认为for循环做什么,你认为它。试试'query = query.replace(“”,“+”)'。 – cdo256