「免费学习 60+ 节公开课:投票页面,点击讲师头像」

作者 | linksc

译者 | 弯月,编辑 | 郭芮

来源 | CSDN(ID:CSDNnews)

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

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

requests
bs4

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

import urllib
import requests
from bs4 import BeautifulSoup

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

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

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

# 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一个字典。

headers = {"user-agent" : MOBILE_USER_AGENT}
resp = requests.get(URL, headers=headers)

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

if resp.status_code == 200:soup = BeautifulSoup(resp.content, "html.parser")

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

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').textitem = {"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科技大本营转载文章,转载请联系作者)

精彩推荐

点击阅读原文,或扫描文首贴片二维码

所有CSDN 用户都可参与投票和抽奖活动

加入福利群,每周还有精选学习资料、技术图书等福利发送

推荐阅读

  • 2019,不可错过的NLP“高光时刻”

  • 代替Mask R-CNN,BlendMask欲做实例预测任务的新基准?

  • 300多局点,数据接入量超过2TB/S,华为用AI优化数据中台 | BDTC 2019

  • 达摩院 2020 预测:感知智能的“天花板”和认知智能的“野望”

  • 十大新兴前端框架大盘点

  • 门限签名技术火了,它的硬核之处绝不仅仅是秘密共享……

  • 2020 年,陆奇 59 岁:我给 20、30、40 岁年轻人的建议

  • 你点的每个“在看”,我都认真当成了AI

如何用Python快速抓取Google搜索?相关推荐

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

    本文是通过 requests 和 Beautiful Soup 抓取 Google 搜索的快速指南. 作者 | linksc 译者 | 弯月,责编 | 郭芮 出品 | CSDN(ID:CSDNnews ...

  2. python request url 转义_Python多线程抓取Google搜索链接网页

    1)urllib2+BeautifulSoup抓取Goolge搜索链接 近期,参与的项目需要对Google搜索结果进行处理,之前学习了Python处理网页相关的工具.实际应用中,使用了urllib2和 ...

  3. python抓取google搜索结果

    1. 搜索引擎的选取 选择一个好的搜索引擎意味着你能够得到更准确的搜索结果.我用过的搜索引擎有四种:Google.Bing.Baidu.Yahoo!. 作为程序员,我首选Google.但当我看见我最爱 ...

  4. 如何用python爬股票数据_python爬虫股票数据,如何用python 爬虫抓取金融数据

    Q1:如何用python 爬虫抓取金融数据 获取数据是数据分析中必不可少的一部分,而网络爬虫是是获取数据的一个重要渠道之一.鉴于此,我拾起了Python这把利器,开启了网络爬虫之路. 本篇使用的版本为 ...

  5. python采集直播_天天再看斗鱼直播?教你如何用Python技术抓取弹幕

    说起来,弹幕这种东西的出现,真的给众多网友带来无数的欢乐源泉. 当然,密集恐惧症患者慎入,毕竟某些视频的弹幕可谓是刷得密密麻麻的. 整个屏幕看的不是剧情,是弹幕. 以前是磕CP很快乐,现在是磕着弹幕也 ...

  6. 抓取 google 搜索结果

    直接访问www.google显然是无法访问的,附上两个地址: http://209.85.225.23/ http://173.194.14.53/ 这两个地址搜索的后缀是 newwindow=1&a ...

  7. 详解如何用爬虫批量抓取百度搜索多个关键字数据

    2019独角兽企业重金招聘Python工程师标准>>> 本文介绍如何使用软件的流程图模式,免费采集百度搜索多个关键字的信息数据. 软件下载网址:www.houyicaiji.com ...

  8. 如何用python快速爬取速卖通商品信息

    我们首先打开网页做分析 按下F12点击Network找到headers,将Cookie和User-agent复制下来,留着备用! 下面用requets做调式,能否获取到网页信息 import requ ...

  9. scrapy 搜索关键字_详解如何用爬虫批量抓取百度搜索多个关键字数据

    本文介绍如何使用软件的流程图模式,免费采集百度搜索多个关键字的信息数据. 软件下载网址:www.houyicaiji.com 采集结果预览: 下面我们来详细介绍一下如何使用流程图模式,采集在百度输入多 ...

最新文章

  1. 人名翻译_考研英语翻译:句子中出现人名怎么办?
  2. 通过CH340G驱动的Nano ATMEAG328P驱动板初步测试
  3. 信息系统项目管理师-沟通管理知识点
  4. OpenMap教程4 –图层
  5. ping 命令的几种使用方法?
  6. 癌症精准医疗上市公司泛生子基因 - 内推(名额有限)
  7. [转载] 百科全说——漆浩:怎样健康饮茶远离误区(11-03-09)
  8. C++内存管理(转)http://www.cnblogs.com/qiubole/archive/2008/03/07/1094770.html
  9. Ubuntu install mysql
  10. emacs+cedet解析源码定义位置
  11. Linux_free(buffer与cache区别)
  12. 计算机怎么查文件打印记录表,打印机打印文件历史记录如何查看
  13. python投影Himawari-8数据
  14. 2022年第十九届五一数学建模竞赛 C题 火灾报警系统问题
  15. C++ 自定义String类
  16. 2020-12-14读书笔记《日日是好日》
  17. colormap保存 matlab_matlab中colormap用法
  18. 调用微信扫一扫接口/利用微信JS-SDK调用微信扫一扫功能
  19. 解决tf报Graph disconnected错误
  20. Android实习周记:第八周,职场里有真感情吗?我的回答是T_T

热门文章

  1. PostgreSQL md5 auth method introduce, with random salt protect
  2. 用路由器限制局域网的带宽流量
  3. 排除一例电脑启动故障
  4. 在列表显示某个内容,但数据表没有这个字段
  5. freemarker if判断
  6. 解决Ubuntu环境下不能QT不能输入中文
  7. 2021全国高校计算机能力挑战赛(初赛)Java试题二
  8. 操作系统知识点:全面
  9. python isdigit()
  10. Linq基础知识小记二