怎样抓取网页数据(我需要一种方法,让我的Python从Google搜索中获取链接)
优采云 发布时间: 2021-12-29 09:19怎样抓取网页数据(我需要一种方法,让我的Python从Google搜索中获取链接)
《免费学习60+公开课:投票页面,点击讲师头像》
作者 | 链接
翻译 | 新月,编辑| 郭锐
来源 | CSDN(ID:CSDNnews)
自从 2011 年 Google Web Search API 被弃用以来,我一直在寻找其他方法来抓取 Google。我需要一种方法让我的 Python 脚本从 Google 搜索中获取链接。所以,我自己想出了一个方法,这篇文章是通过请求和 Beautiful Soup 抓取 Google 搜索的快速指南。
首先,让我们安装一些依赖项。请将以下内容保存为文本文件requirements.txt:
<p>requests
bs4</p>
接下来,运行 pip install -r requirements.txt 命令来安装依赖项。然后将其导入到您的脚本中。
<p>import urllib
import requests
from bs4 import BeautifulSoup</p>
为了执行搜索,您需要在 URL 中向 Google 提供查询参数。此外,所有空格都必须替换为 +。为了构造 URL,我们需要设置正确的查询格式并将其放入 q 参数中。
<p>query = "hackernoon How To Scrape Google With Python"
query = query.replace(' ', '+')
URL = f"https://google.com/search?q={query}"</p>
Google 将针对移动设备和台式计算机返回不同的搜索结果。因此,我们需要指定一个合适的用户代理。
<p># desktop user-agent
USER_AGENT = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:65.0) Gecko/20100101 Firefox/65.0"
# mobile user-agent
MOBILE_USER_AGENT = "Mozilla/5.0 (Linux; Android 7.0; SM-G930V Build/NRD90M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.125 Mobile Safari/537.36"</p>
发送请求很简单。但是,请求需要将用户代理放在请求的开头。为了设置正确的标题,我们必须将字典传递给标题。
<p>headers = {"user-agent" : MOBILE_USER_AGENT}
resp = requests.get(URL, headers=headers)</p>
接下来,我们需要检查请求是否成功。最简单的方法是检查状态代码。如果返回 200,则表示成功。然后,我们需要将其放入 Beautiful Soup 中来解析内容。
<p>if resp.status_code == 200:
soup = BeautifulSoup(resp.content, "html.parser")</p>
下一步是解析数据并从页面中提取所有链接。我们可以使用 Beautiful Soup 轻松完成这项任务。在促进每个链接时,我们需要将结果存储在列表中。
<p>results =
for g in soup.find_all('div', class_='r'):
anchors = g.find_all('a')
if anchors:
link = anchors[0]['href']
title = g.find('h3').text
item = {
"title": title,
"link": link
}
results.append(item)
print(results)</p>
而已。该脚本非常简单且容易出错。但至少它可以让你开始,从那时起你可以编写自己的谷歌爬虫。您可以从 GitHub 下载整个脚本:
.com/getlinksc/scrape_google
原文链接:
.com/how-to-scrape-google-with-python-bo7d2tal
(*本文为AI技术大本营转载文章,转载请联系作者)
所有CSDN用户均可参与投票抽奖活动
加入福利群,每周送精选学习资料、技术书籍等福利