怎样抓取网页数据(我需要一种方法,让我的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用户均可参与投票抽奖活动

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

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线