前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何用Python快速抓取Google搜索?

如何用Python快速抓取Google搜索?

作者头像
AI科技大本营
发布2020-02-12 13:04:41
3.9K0
发布2020-02-12 13:04:41
举报
文章被收录于专栏:AI科技大本营的专栏

作者 | linksc

译者 | 弯月,编辑 | 郭芮

来源 | CSDN(ID:CSDNnews)

自从2011年 Google Web Search API 被弃用以来,我一直在寻找其他的方法来抓取Google。我需要一种方法,让我的 Python 脚本从 Google 搜索中获取链接。于是,我自己想出了一种方法,而本文正是通过 requests 和 Beautiful Soup 抓取 Google 搜索的快速指南。

首先,让我们来安装一些依赖项。请将以下内容保存成文本文件 requirements.txt:

代码语言:javascript
复制
requests
bs4

接下来,运行 pip install -r requirements.txt 命令来安装依赖项。然后将其导入到你的脚本中。

代码语言:javascript
复制
import urllib
import requests
from bs4 import BeautifulSoup

为了执行搜索,你需要在URL中为 Google 提供查询参数。此外,所有空格都必须用+代替。为了构建URL,我们需要设置正确的查询格式,并其放入q参数中。

代码语言:javascript
复制
query = "hackernoon How To Scrape Google With Python"
query = query.replace(' ', '+')
URL = f"https://google.com/search?q={query}"

Google 会针对移动设备和台式机返回不同的搜索结果。因此,我们需要指定适当的用户代理。

代码语言:javascript
复制
# 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"

发送请求很简单。但是,requests需要将 user-agent 放在请求的头部。为了设置正确的头部,我们必须传给headers一个字典。

代码语言:javascript
复制
headers = {"user-agent" : MOBILE_USER_AGENT}
resp = requests.get(URL, headers=headers)

接下来,我们需要检查请求是否成功。最简单的方法是检查状态码。如果返回200,则表示成功。然后,我们需要将其放入 Beautiful Soup 中以解析内容。

代码语言:javascript
复制
if resp.status_code == 200:
    soup = BeautifulSoup(resp.content, "html.parser")

接下来是解析数据,并从页面提取所有的链接。我们可以利用 Beautiful Soup 简单地完成这项工作。在便利每个链接时,我们需要将结果存储到一个列表中。

代码语言:javascript
复制
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)

这样就可以了。这个脚本非常简单,而且容易出错。但至少它能带你入门,从此你就可以编写自己的 Google 爬虫了。你可以从 GitHub上下载整个脚本,地址是:

https://github.com/getlinksc/scrape_google

原文链接:

https://hackernoon.com/how-to-scrape-google-with-python-bo7d2tal

(*本文为AI科技大本营转载文章,转载请联系作者)

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-01-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI科技大本营 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档