这是简易数据分析系列的第 4 篇文章。

原文首发于博客园:简易数据分析 04。

今天我们开始数据抓取的第一课,完成我们的第一个爬虫。因为是刚刚开始,操作我会讲的非常详细,可能会有些啰嗦,希望各位不要嫌弃啊:)

有人之前可能学过一些爬虫知识,总觉得这是个复杂的东西,什么 HTTP、HTML、IP 池,在这里我们都不考虑这些东西。一是小的数据量根本不需要考虑,二是这些乱七八糟的东西根本没有说到爬虫的本质。

爬虫的本质是什么?其实就是找规律

而且爬虫的找规律难度,大部分都是小学三年级的数学题水平。

我们下面拿个例子说明一下,下图历史文章的一个截图,我们可以很清晰的看到,每一条推文可以分为三大部分:标题、图片和作者,我们只要找到这个规律,就可以批量的抓取这类数据。

好了,理论的地方我们讲完了,下面我们开始进行实操。

但凡做爬虫练手,第一个爬取的网站一般都是豆瓣电影 TOP 250,网址链接是 https://movie.douban.com/top250?start=0&filter=。第一次上手,我们爬取的内容尽量简单,所以我们只爬取第一页的电影标题。

[外链图片转存失败(img-ELxlj8QN-1562198130646)(https://image-1255652541.cos.ap-shanghai.myqcloud.com/images/20190623093803.png)]

浏览器按 F12 打开控制台,并把控制台放在网页的下方(具体操作可以看上一篇文章),然后找到 Web Scraper 这个 Tab,点进去就来到了 Web Scraper 的控制页面。

进入 Web Scraper 的控制页面后,我们按照 Create new sitemap -> Create Sitemap 的操作路径,创建一个新的爬虫,sitemap 是啥意思并不重要,你就当他是个爬虫的别名就好了。

我们在接下来出现的输入框里依次输入爬虫名和要爬取的链接。

爬虫名可能会有字符类型的限制,我们看一下规则规避就好了,最后点击 Create Sitemap 这个按钮,创建我们的第一个爬虫。

这时候会跳到一个新的操作面板,不要管别的,我们直接点击 Add new selector 这个蓝底白字的按钮,顾名思义,创建一个选择器,用来选择我们想要抓取的元素。

这时候就要开始正式的数据抓取环节了!我们先观察一下这个面板有些什么东西:

1.首先有个 Id,这个就是给我们要爬取的内容标注一个 id,因为我们要抓取电影的名字,简单起见就取个 name 吧;

2.电影名字很明显是一段文字,所以 Type 类型肯定是 Text,在这个爬虫工具里,默认 Type 类型就是 Text,这次的爬取工作就不需要改动了;

3.我们把多选按钮 Multiple 勾选上,因为我们要抓的是批量的数据,不勾选的话只能抓取一个;

4.最后我们点击黄色圆圈里的 Select,开始在网页上勾选电影名字;

当你把鼠标移动到网页时,会发现网页上出现了绿色的方块儿,这些方块就是网页的构成元素,当我们点击鼠标时,绿色的方块儿就会变为红色,表示这个元素被选中了:

这时候我们就可以进行我们的抓取工作了。

我们先选择「肖生克的救赎」这个标题,然后再选择「霸王别姬」这个标题(注意:想达到多选的效果,一定要手动选取两个以上的内容

选完这两个标题后,向下拉动网页,你就会发现所有的电影名字都被选中了:

[外链图片转存失败(img-oPJa8M15-1562198130652)(https://image-1255652541.cos.ap-shanghai.myqcloud.com/images/20190623093807.gif)]

拉动网页检查一遍,发现所有的电影标题都被选中后,我们就可以点击 Done selecting!这个按钮,表示选择完毕;

点击按钮后你会发现下图的红框位置会出现了一些字符,一般出现这个就表示选取成功了:

我们点击 Data preview 这个按钮,就可以预览我们的抓取效果了:

没什么问题的话,关闭 Data Preview 弹窗,翻到面板的最下面,有个 Save selector 的蓝色按钮,点击后我们会回退到上一个面板。

这时候你会发现多了一行数据,其实就是我们刚刚的操作内容被记录下来了。

在顶部的 tab 栏,有一个 Sitemap top250 的 tab,这个就是我们刚刚创建的爬虫。点击它,再点击下拉菜单里的 Scrape 按钮,开始我们的数据抓取。

这时候你会跳到另一个面板,里面有两个输入框,先别管他们是什么,全部输入 2000 就好了。

点击 Start scraping 蓝色按钮后,会跳出一个新的网页,Web Scraper 插件会在这里进行数据抓取:

一般弹出的网页自动关闭就代表着数据抓取结束了,我们点击面板上的 refresh 蓝色按钮,就可以看到我们抓取的数据了!

在这个预览面板上,第一列是 web scraper 自动添加的编号,没啥意义;第二列是抓取的链接,第三列就是我们抓取的数据了。

这个数据会存储在我们的浏览器里,我们也可以点击 Sitemap top250 下的 Export data as CSV,这样就可以导出成 .csv 格式的数据,这种格式可以用 Excel 打开,我们可以用 Excel 做一些数据格式化的操作。

今天我们爬取了豆瓣电影TOP250 的第 1 页数据(也就是排名最高的 25 部电影),下一篇我们讲讲,如何抓取所有的电影名。

推荐阅读:

简易数据分析 03 | 浏览器中那些不为人知的使用技巧

简易数据分析 02 | Web Scraper 的下载与安装

简易数据分析 01 | 为什么我们要学习数据分析?

简易数据分析 04 | Web Scraper 初尝--抓取豆瓣高分电影相关推荐

  1. 动态加载子节点_简易数据分析 10 | Web Scraper 翻页—抓取「滚动加载」类型网页...

    这是简易数据分析系列的第 10 篇文章. 原文首发于博客园:简易数据分析 10. 友情提示:这一篇文章的内容较多,信息量比较大,希望大家学习的时候多看几遍. 我们在刷朋友圈刷微博的时候,总会强调一个『 ...

  2. div自动滚动_简易数据分析 10 | Web Scraper 翻页——抓取「滚动加载」类型网页

    这是简易数据分析系列的第 10 篇文章. 原文首发于博客园:简易数据分析 10. 友情提示:这一篇文章的内容较多,信息量比较大,希望大家学习的时候多看几遍. 我们在刷朋友圈刷微博的时候,总会强调一个『 ...

  3. java抓取网页数据_简易数据分析 10 | Web Scraper 翻页——抓取滚动加载类型网页...

    [这是简易数据分析系列的第 10 篇文章] 友情提示:这一篇文章的内容较多,信息量比较大,希望大家学习的时候多看几遍. 我们在刷朋友圈刷微博的时候,总会强调一个『刷』字,因为看动态的时候,当把内容拉到 ...

  4. Web Scraper 高级用法——抓取二级网面 | 简易数据分析 13

    这是简易数据分析系列的第 13 篇文章. 在前面的课程里,我们抓取的数据都是在同一个层级下的内容,探讨的问题主要是如何应对市面上的各种分页类型,但对于详情页内容数据如何抓取,却一直没有介绍. 比如说我 ...

  5. 数据分析与挖掘案例之使用python抓取豆瓣top250电影数据进行分析

    使用python抓取豆瓣top250电影数据进行分析 抓取豆瓣Top250电影数据的链接和电影名称 代码如下: import urllib.request as urlrequest from bs4 ...

  6. 003.[python学习] 简单抓取豆瓣网电影信息程序

    003.[python学习] 简单抓取豆瓣网电影信息程序 声明:本程序仅用于学习爬网页数据,不可用于其它用途. 本程序仍有很多不足之处,请读者不吝赐教. 依赖:本程序依赖BeautifulSoup4和 ...

  7. python 豆瓣评论分析方法_使用python抓取豆瓣top250电影数据进行分析

    抓取豆瓣Top250电影数据的链接和电影名称 代码如下: import urllib.request as urlrequest from bs4 import BeautifulSoup impor ...

  8. Web Scraper 翻页——抓取分页器翻页的网页(Web Scraper 高级用法)| 简易数据分析 12

    这是简易数据分析系列的第 12 篇文章. 前面几篇文章我们介绍了 Web Scraper 应对各种翻页的解决方法,比如说修改网页链接加载数据.点击"更多按钮"加载数据和下拉自动加载 ...

  9. 抓取豆瓣的电影排行榜TOP100

    1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 """ 4 一个简单的Python爬虫, 用于抓取豆瓣电影Top前1 ...

  10. 地图选择器怎么用_简易数据分析 15 | Web Scraper 高级用法——CSS 选择器的使用....

    [ 这是简易数据分析系列的第 15 篇文章 ] 年末事情比较忙,很久不更新了,后台一直有读者催更,我看了一些读者给我的私信,发现一些通用的问题,所以单独写篇文章,介绍一些 Web Scraper 的进 ...

最新文章

  1. linux大小写敏感和windows大小写不敏感(忽略大小写)导致的直接拷贝文件文件名冲突问题(需要打tar包再分享)
  2. jetty java_Jetty,Java和OAuth入门
  3. python中类的参数怎么传_如何将整个类作为参数传递给另一个类的方法
  4. ANDROID 4.0 SDK R14 模拟器
  5. SpringMVC RedirectView的使用以及源码分析
  6. 安卓java自实现mp3播放器,Android MediaPlayer实现音乐播放器实例代码
  7. win10切换桌面_探秘Win10系统中的不可错过的实用功能
  8. 手把手教你玩转YOLOX--Windows(上)
  9. 百度 bos php,GitHub - SwimmingTiger/BOSFS: PHP流包装器:百度开放云对象存储文件系统(BCE BOS File System)...
  10. Scintilla教程(6): 字符集
  11. C#开发实战1200例(第II卷)目录
  12. 如何删除github中的提交历史记录
  13. 房屋租赁合同无效条件包括哪些
  14. JPA、EJB、事物管理、WebSphere ---相关内容整理
  15. 10047.GNU Make 使用手册中译版(转)
  16. 赵小楼《天道》《遥远的救世主》深度解析(116)论天国的女人
  17. 部分特定领域的信息化检测管理要求和获认可机构目录
  18. 以太坊中的账户、交易、Gas和区块Gas Limit等基本概念
  19. 采购申请、采购订单、供应商
  20. std在汇编语言是什么指令_汇编语言的所有指令

热门文章

  1. 淘宝广告投放效果分析
  2. 音频剪辑软件分享,教你快速剪辑音频
  3. PCL库实时显示点云流
  4. 华为路由器 wifi网速慢解决办法
  5. Android项目实战--手机卫士34--流量管理
  6. 看我如何自制安全的远程控制工具
  7. 判断某年某月某日是这一年的第几天
  8. 基于WxPython的批量图片缩放工具
  9. tibco linux安装手册,Tibco 产品安装手册.doc
  10. 关于Google谷歌微信不能使用小程序