数据爬虫入门与进阶

说明:本文章内容学习自“三 节 课”平台的《人人都能学会的数据爬虫课》。

产品和运营工作中,经常需要做出大量的决策,在很多时候决策的做出是需要靠数据进行支撑的,数据能够让我们避免自己的主观判断。

如何获取到未经行业机构处理过的数据,拿到热乎的一手资料呢?爬虫,能实现大部分(80%)的网站数据的抓取。

一、爬虫的应用场景

1、爬虫(网络爬虫/spider/数据抓取):自动抓取万维网的程序或脚本。

2、常见应用场景和功能

(1)市场营销

a、搜索引擎优化(Search Engine Optimization):获取本品和竞品排名,优化搜索引擎方案。

b、市场研究(Market Research):市场容量的研究和市场行业趋势的变化。

c、潜在客户/线索(Lead Generation):对知乎等各种话题关注者,微博粉丝进行定向推送。

(2)竞品分析

a、舆情分析(Reviews and Sentiments):社交媒体/购物网站里评论里收集反馈与舆情分析。

b、竞品社交媒体发布及其粉丝(Content Approach and Followers):竞品最近发布了什么内容,转化粉丝。

c、价格对照(Price Comparison):根据CPI(居民消费价格指数)价格动态波动。

d、变化检测(Change Detection):竞品促销,价格变化,品类扩充。

(3)职业发展与个人生活

a、求职招聘(Job Hunting and Recruiting):求职者定向求职,Hr定向挖人。

b、产品和服务(Products and Services):比较价格和口碑。

c、财务规划(Financial Planning):证券专家的评论。

d、买/租/卖(Looking to Buy/Rent/Sell)。


二、常见抓取工具

1、excel。(简单的table布局适用)

2、第三方工具:火车头,八爪鱼。

3、web Scraper。

4、Python Scraper。


三、Excel抓取简单的数据

操作步骤说明

1、打开可抓取的网页,F12检查元素,NetWork项,选择Filter,刷新重新加载页面,得到对应的xml文件,右键 open in new tab就可以看到相应网站内所有要抓取的信息。

2、打开Excel,选择数据标签页,点击自网站,输入要抓取的信息网址,黄色标记点绿,加载完后点击导入即可。


Excel作为抓取工具的总结:

1、用excel的学习成本较低,上手快;

2、可以用excel的一些工具对数据进行操作,比如上图中的全部刷新(实时获取网站数据),以及分列,合并计算等小工具的使用;

3、局限性较大,只能对一些老的以table布局的网站起作用。


四、爬虫插件 web Scraper

能翻墙的请直接在谷歌应用商店,搜索webscraper,添加扩展程序,自动安装好后就可以直接使用了。不能翻墙的请自行百度。

1、页面可视范围内基本元素的抓取

新建站点地图create new sitemap(import sitemap 需要用到JSON格式的特殊代码),选择multiple,再点击select,点选页面要选中的元素,点选两个之后,插件就可以自动识别到所有要点选的同类元素。(从代码的角度设想该插件的原理应该是,批量获取页面中同种级别元素内的text文本内容)

建好选择器之后,我们就可以预览各种效果,然后可以开始抓取了:点击Scrape,直接Start Scraping,抓取完毕之后会有成功的提示,此时我们可以把抓取好的数据,选择是否导出(点击Export Date As CSV)。

此方法只能下载一个页面初始加载时的数据量。这个不难想象,因为页面的数据是由鼠标滚轮滚动时访问数据库进行页面加载的,元素的内容都是页面事件触发后生成的,所以获取不到。

开个脑洞:如果能写个脚本,让程序自动触发鼠标的滚动事件,那是不是就能获取到更多呢?

2、分页的所有元素抓取

元素分页的规律性,对要抓取的网页page进行限定。

对新建的站点地图进行编辑,Edit Metadata,对照url上呈现的翻页规则,将Start URL里对应的翻页规则进行改变。规则是:[想抓取的初始页码值-想抓取得结束页码值:页码差值]。

比如豆瓣这个网页的翻页规律是start参数依次加25,等差数列,差值为25,所以可以写成:

https://movie.douban.com/top250?start=[0-500:25]&filter=

一般规律为page,一页一页加法,所以写成 page=[1-23]

建好之后,遵照 1、的方法,新建selector,最后进行scrape就可以了。

3、多元素抓取---进阶

(1)、一个页面如何抓取多个元素呢?

(2)、现今流行的滚动或交互式动态加载(不规则分页)模式下又该如何抓取元素内容呢?

(3)、快捷键快速选中某个元素;

(4)、用链接采集二级三级页面;

(5)、抓取图片和表单的方法;

概念总结:以上各种方法其实根据的原理都是页面元素,模拟浏览器事件,对浏览器加载出来的页面中的元素内容或者资源进行提取。

4、详细进阶方式(80%)

(1)一个页面抓取多个元素(一般是相关联的元素)

同之前的例子,先新建一个站点地图。

为此站点新建一个选择器,type为element,Multiple多选,选中所有大标签,done selecting后可预览一下选中的项

选中大层级元素

保存好外层选择器后,点击选择器,进入子选择器页面,再次add selector,添加子层选择器。

选中子层级元素

添加了多个子层选择器后,可以预览一下效果是否如你所愿。

多个选择器可以先预览效果


抓取得到的元素结果集预览

最后,就可以用之前的招数,开始进行scrape抓取,生成csv了。

(2)不规律分页的抓取

初始步骤同上,新建站点地图,再新建选择器,如下图,选择好要抓取的元素,选择好需要浏览器自动执行点击事件的元素“加载更多”,点击类型选择click more,告诉浏览器要一直加载完成方能结束,click element uniqueness 告诉浏览器,当点击选择器变成什么样子了就不需要再继续进行了,一般有 unique text(文本变化),html + text(网址或文本变化),html (网页变化),css selecor(选择器的样式变化)。

新建一个Multiple属性的Element click类型,selector指向大元素


新建一个click selector,指向加载更多元素


在上面的基础上,新建一个子选择器,选择公司名所在的元素


子选择器按一般的规则来,text类型,非multiple,selector选中标题文本

结束上述步骤后抓取就可以了。抓取的速度有时会很慢,需要耐心等待。

抓取的结果示意图,可保存成csv

(3)快捷键抓取

点击selector选择元素后,点击Enable Key开启键盘操作,鼠标悬停,等采集字段变绿后按键盘:S=选中;P=父类;C=子类。

可通过键盘的S,P,C进行鼠标悬停选取

(4)用链接采集二级三级页面

按Element方法圈好要抓取的元素大类。

element类型的抓取

抓取子元素招股说明书名称。type为text类型

在element类型大类中,抓取说明书名称子类

再抓取一个子类,招股说明书发布的日期。type为text类型

在element类型大类下抓取日期子类

接下来抓取列表的三级页面链接,注意新建的选择器type为link类型。

在Element大类下,抓取页面的链接子类

要抓取的类的层级结构如下:

downfile为大类选择器名称,此图中展示的是大类下的三个要抓取的子类

以上就绪之后,我们还需要在三级页面中设置一个link选择器。

打开三级页面(选择一个招股说明书点击打开新页面),在上一次设置的link选择器的子级,新建一个选择器,type为link,链接到对应的下载按钮即可。

明细页面新建一个link类型的选择器,选择页面的下载按钮
层级关系

以上都设置完成后,即可点击进行抓取。

抓取的过程中,插件会自动将页面的二级三级页面依次打开,并进行抓取,抓取完成后生成的是一个带有下载链接的数据包。此时我们可以通过迅雷或者QQ旋风批量下载功能,对需要的文件进行下载。

下载的CSV数据文件

Q:link类型和Element Click等类型有什么区别?

A:以上两种类型都能进行采集二级或者三级页面数据,但,新链接为A标签时,Type都可以用Link,采集URL时,必须要用link类型。非A标签必须要把type设为Element click等类型才可以采集二三级页面。


(5)抓取图片和表单

a.抓取图片

一般抓取图片的链接再用工具进行批量比较合适,type有为image的项。

b.抓取表单Table

抓取table的头和数据子类

至此,数据爬虫基本方法介绍完毕。

五、常见反爬虫方法。

(1)反爬虫常见手段和应对方法:

a文件头 user-agent检查:访问设备返回数据进行检查;

b动态加载(Ajax Javascript等):实时更新;

c用户行为(cookies+请求时间间隔):频率太高则临时黑名单;

d人机交互验证:图形验证码等;

反爬应对方法:

web scraper用浏览器避免user-agent检查,将cookies传输过去所以不会被检查,是浏览器所以可以实现ajax javascript等方法,设置了时间间隔所以不会被查封。

(2)反爬中的奇葩

web scraper对于有些情况是无法抓取的。

比如

a美团网网页端的团购价格,是使用的雪碧图(小图片集合到大图中,根据定位来显示价格),页面中无法抓取到对应的元素,所以无法抓取到团购价格。但是手机端可以抓取。

b去哪儿网机票价格是用的元素位移,手机端用字体替换。

网页端方式:1240 = 1 6 1 0 + 2 4(抓取下来用excel进行替换,或者脚本进行替换抓取等方法)

手机端方式:用ttf字体文件,将0123456789顺序替换为0153246987。

c将结果解析为图片。

对于这些奇葩网站的反爬技术,需要有高超的应对方法。

但是暂时还没有攻略。

平台给的作业。http://pm25.in/rank

作业进阶


http://www.cninfo.com.cn/cninfo-new/fulltextSearch?code=¬autosubmit=&keyWord=%E6%8B%9B%E8%82%A1%E8%AF%B4%E6%98%8E%E4%B9%A6

麦淘

http://m.maitao.com/classify/null?ids=1

IT桔子

https://www.itjuzi.com/search?key=%E4%BA%B2%E5%AD%90

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容