您随时可以直接抓取Google搜索结果。为此,您可以使用https://google.com/search?q=<Query>
将返回前10个搜索结果的URL 。
然后,您可以使用lxml为例分析页面。根据您的使用方式,您可以通过CSS选择器(.r a
)或XPath选择器(//h3[@class="r"]/a
)查询结果节点树。
在某些情况下,生成的URL将重定向到Google。通常,它包含一个查询参数q
,该参数将包含实际的请求URL。
使用lxml和请求的示例代码:
from urllib.parse import urlencode, urlparse, parse_qs
from lxml.html import fromstring
from requests import get
raw = get("https://www.google.com/search?q=StackOverflow").text
page = fromstring(raw)
for result in page.cssselect(".r a"):
url = result.get("href")
if url.startswith("/url?"):
url = parse_qs(urlparse(url).query)['q']
print(url[0])
关于Google禁止您的IP的说明:根据我的经验,Google仅禁止您开始向Google发送搜索请求的垃圾邮件。如果Google认为您是机器人,则会以503回应。