c爬虫抓取网页数据(百度/google等搜索网站就是的实现方法(使用python3)) 您所在的位置:网站首页 百度网络爬虫 c爬虫抓取网页数据(百度/google等搜索网站就是的实现方法(使用python3))

c爬虫抓取网页数据(百度/google等搜索网站就是的实现方法(使用python3))

2023-01-03 02:44| 来源: 网络整理| 查看: 265

文章采集完(python数据分析入门指南-知乎专栏(2016.10.21))

  c爬虫抓取网页数据(百度/google等搜索网站就是的实现方法(使用python3))

  1. 什么是爬虫

  当今互联网上存储着大量信息。

  作为普通网民,我们经常使用浏览器访问互联网上的内容。但是如果你想批量下载散落在网上的某方面的信息(比如某​​网站的所有图片,某新闻网站的所有新闻,或者所有的收视率豆瓣上的电影),手动使用浏览器打开网站一一搜索太费时费力。

  

  人工统计太费时费力

  因此,编写程序来自动抓取 Internet 以获取有关我们想要的特定内容的信息变得更加重要。

  网络爬虫是根据一定规则自动从万维网上抓取信息的程序或脚本。

  通过程序,我们模拟浏览器向服务器发送请求,获取信息,分析信息,存储我们想要的内容。

  百度/谷歌搜索网站是利用爬虫定期搜索互联网上的链接并更新其服务器,以便我们通过搜索引擎搜索到我们想要的信息。

  2. 网页结构

  访问网页不仅仅是输入地址并查看它。

  在浏览器中按“F12”,或右键单击网页并选择“检查”。你可以看到页面后面的代码。

  以谷歌的Chrome浏览器为例,在任意一个网站中,我们按下F12,就会出现一个浏览器检查窗口。默认的 Elements 窗口是当前界面的 HTML 代码。

  

  Web 和元素界面

  Sources 界面将显示浏览器从每个服务器下载的所有文件。

  

  来源界面

  在网络界面,在“记录网络日志”状态下(按Ctrl+E切换该状态),可以依次记录浏览器在每个时间段接收到的文件和文件相关数据。

  

  网络接口

  我们这里要实现的抓取具体信息的爬虫,需要我们到对应的网站去分析它的网页结构。根据网页的结构,我们可以通过编写相应的程序得到我们想要的信息。

  3.python代码实现

  我们将以豆瓣上的《流浪地球》影评为例,一步步讲解python爬虫的实现方法(使用python3).

  以下代码可在 github 上下载。

  3.1 基本介绍

  我们将在本节中使用的 python 库是:

  另外,本节我们没有讲,但是使用爬虫时可能用到的库通常包括:

  对于上面的python库,bs4可以通过“pip install Beautifulsoup4”命令安装,其他库可以直接通过“pip install library noun”安装。

  我们首先创建一个新的 jupyter 文件并导入必要的 python 库。

  

  导入必要的python库

  3.2 请求的使用

  

  使用请求

  上面的代码允许我们以编程方式访问(百度)网页。

  其中,“requests.get(网页地址)”是以get的方式访问网页。

  访问网址有两种类型:获取和发布。get和post的区别可以看下图(来自w3school)。两者的区别很容易理解,无需深究。

  

  关于get、post和使用request传参,我们会在以后的爬虫进阶教程中一一介绍。

  我们已经使用“response = requests.get(url)”将获取的信息传递给“response”。但是如果我们输出响应,我们得到的不是网站的代码,而是响应状态码。

  

  响应状态码

  响应状态码代表我们之前请求请求的结果。常见的是200,代表成功;403,无访问权限;404,文件不存在;502,服务器错误。

  想看看我们之前用“requests.get(url)”得到的网页内容。我们需要先执行“response.enconding = 'utf-8'”。这一步是将网页内容编码为utf-8,否则我们将无法在网页中看到中文。

  

  将生成的内容编码为 utf-8

  输入response.text后,我们就可以看到网页的代码了。

  

  3.3 BeautifulSoup 的使用

  在使用 BeautifulSoup 之前,建议读者对 html 有一定的了解。如果没有,那很好。

  HTML 是一种标记语言,具有很强的结构要求。

  

  html代码示例

  我们使用 BeautifulSoup 来分析 HTML 页面的结构来选择我们想要的内容。

  我们可以使用 BeautifulSoup(response.text, "lxml") 来自动分析我们之前得到的网页代码。分析结果存储在等号左侧的变量汤中。

  

  html内容信息分析

  BeautifulSoup 有很多使用方法。

  例如 .find("tag name") 返回找到的第一个标签的内容。

  

  .find("标记名")

  值得注意的是,我们找到的第一个 div 标签里面也有 div 标签。但是 BeautifulSoup 不会注意到, .find("div") 只会返回找到的第一个 div 标签,以及该标签内的所有内容。

  .find_all("tag name") 返回找到的所有标签。

  

  .find_all("标签名称")

  .find_all("tag name", class_="class name", id="id name") 可以找到指定的类别并指定id标签。(注意使用 class_ 而不是 class)

  

  .find_all("标签名", class_="类名", id="id名")

  此外,我们还可以继续对.find()和.find_all()的结果进行.find()、.find_all()查询。

  3.4 json的使用

  除了html格式文件,我们经常需要爬取一些json格式文件。JSON 是一种轻量级的数据交换格式。

  html和json格式文件的区别如下。(严格来说左边应该是一个XML格式的文件,但也可以认为是一般的HTML)

  

  html和json格式文件的区别

  (图片来自网络)

  所以,有时,我们会解析 json 格式的数据。

  使用 text = json.loads(字符串格式的json数据)

  您可以将字符串格式的 json 数据转换为 python 字典格式。

  3.5 组合使用

  我们之前提到过:“根据网页的结构,我们可以通过编写相应的程序得到我们想要的信息。”

  现在,我们进入豆瓣影评《流浪地球》的短评界面。

  ()

  

  《流浪地球》短评界面

  我们按“F12”打开检查界面。如果你使用的是Chrome浏览器,可以点击下图的小箭头或者Ctrl+Shift+C。这时,当鼠标移动到页面上的某个位置时,浏览器会自动显示该位置对应的代码位置。

  

  Ctrl+Shift+C后可以查看页面中每个元素的位置

  具体效果如下:

  

  结合我们之前讲过的requests和Beautifulsoup的对应知识。读者可以尝试写一个爬虫来获取当前网页的所有短评信息。

  作者这里爬的是

  “”,是一个json文件,所以额外使用了python的json库。

  代码显示如下。完整代码可在 github 上找到。建议读者先尝试从零开始写一个爬虫,遇到问题先百度/谷歌,最后参考这个完整的爬虫代码

  

  完整的爬虫代码

  完成代码下载:

  3.6 最终结果

  最后,为了让最终的结果更加美观,作者在这里使用了pandas的DataFrame。

  

  使用熊猫的数据框

  爬取的数据结果如下

  

  抓取的数据

  3.7 扩展

  以上内容只是一个基本的python爬虫。

  如果读者细心,他们会发现不登录豆瓣就无法访问。”

  "

  

  没有权限

  这里的url链接中的start=220表示我们不登录就无法查看第220条评论之后的内容。

  在以后的爬虫进阶教程中,我们会介绍如何使用爬虫进行登录、保存cookies等操作。

  另外,部分网站可能会使用js进行网站动态渲染、代码加密等,仅爬取html和json文件是不够的。同时,我们也可以使用多进程来加速爬虫...

  敬请期待以后的爬虫进阶教程。

  其他文章

  (点击跳转)

  

  

  

  

  长

  根据

  关闭

  笔记

  解锁更多精彩内容

  跟着一起做一个有灵魂的人

文章采集器免费版(优采云 数据采集器旗舰版软件使用教程,让采集速度快到飞起来!)

       优采云采集器是一个根据用户提供的关键词,云端自动采集相关文章并发布到用户网站的网站采集器。它能够自动识别各种网页上的标题、正文等信息,不需要用户编写任何采集规则就可以实现全网采集。采集到内容后,会自动计算内容与所设定的关键词的相关度,只把相关的文章推送给用户。支持标题前缀、关键词自动加粗、插入固定链接、自动提取Tag标签、自动内链、自动配图、自动伪原创、内容过滤和替换、电话号码和网址清理、定时采集、百度主动提交等一系列SEO功能。用户只需设置好关键词和相关需求,就能实现全托管、零维护的网站内容更新。不限网站数量,不管是单个网站还是大批量站群,都可以非常方便的进行管理。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有