如何入门 Python 爬虫?

现在可以说是一个大众对数据越来越敏感,越来越重视的时代。

比方说,住在城堡里的 Lucy 姑娘发现,有越来越多的时候,需要在网上采集一些数据来进行分析,或者构建语料库。

比方说,想每天看看 自己发和对手发的的视频点击量都如何了,想买的口红价格一直有没有变化。

导论——如何完成 价格监控 场景实例

每采集一个网站,就得写一次爬虫,虽然简单,但是每次都写好麻烦的!

这篇文章,我们来 教你 怎么写一个像
早期
造数
Demo版本一样的云爬虫。

来造数 – 好用的云爬虫帮你省时省力采集数据

——————————————————————————————————

造数云爬虫使用介绍—在线播放—优酷网,视频高清在线观看视频

—————————————————————————————————

【架构的设想】

(架构内容来自造数的深度用户 Joe)

<img src=”https://pic1.zhimg.com/v2-3bcb87ce6fae19d27de97778db3de200_b.png” data-rawwidth=”942″ data-rawheight=”464″ class=”origin_image zh-lightbox-thumb” width=”942″ data-original=”https://pic1.zhimg.com/v2-3bcb87ce6fae19d27de97778db3de200_r.png”>
《如何入门 Python 爬虫?》

由于用户端和云端都需要展示Web页面,为了省去PHP页面+Python采集解析这个过程中需要的通讯过程,干脆直接使用Web.py来构建整个项目。

那么剩下的问题无非也就几个:

  • 如何构建自己的“审察元素”/“inspector”功能
  • 学习web.py框架(之前没用过)

【inspector 构建】

inspector无非就是监听每一个元素的 hover事件,当某一个元素上检测到hover进入的事件,就将该元素加一个明显的border,并修改一下其背景色、透明度之类的属性:

<img src=”https://pic1.zhimg.com/v2-90f3f7847f41210beecc776ee722278c_b.png” data-rawwidth=”483″ data-rawheight=”153″ class=”origin_image zh-lightbox-thumb” width=”483″ data-original=”https://pic1.zhimg.com/v2-90f3f7847f41210beecc776ee722278c_r.png”>

当检测到hover移出的时间,就恢复该元素之前的样式属性。

<img src=”https://pic3.zhimg.com/v2-229f6c1a7b3cc73de5aa9923bf136cee_b.png” data-rawwidth=”594″ data-rawheight=”197″ class=”origin_image zh-lightbox-thumb” width=”594″ data-original=”https://pic3.zhimg.com/v2-229f6c1a7b3cc73de5aa9923bf136cee_r.png”>

注意:

  • 为什么是jquery语法使用了 $$ ,而不是单个 $?

为整个项目使用了Web.py框架,模板文件里面的$必须转义为$$,或者修改为:jQuery

  • 为什么要先:unbind?

因为“获取翻页模式”和“inspector模式”,都监听了hover事件

【预测用户需要采集的目标】

现在的网页,一般相同的模式/样式的元素,其class或者xpath是相似或相同的。那么当用户点击一个元素之后,从当前的元素往上级寻找,直到有class能标志该目标。

<img src=”https://pic4.zhimg.com/v2-bddff852ce1f110d0b3a6c047c3ec817_b.png” data-rawwidth=”1077″ data-rawheight=”781″ class=”origin_image zh-lightbox-thumb” width=”1077″ data-original=”https://pic4.zhimg.com/v2-bddff852ce1f110d0b3a6c047c3ec817_r.png”>

<img src=”https://pic4.zhimg.com/v2-1e4a4c11f00290e5086a824e779e0abb_b.png” data-rawwidth=”830″ data-rawheight=”377″ class=”origin_image zh-lightbox-thumb” width=”830″ data-original=”https://pic4.zhimg.com/v2-1e4a4c11f00290e5086a824e779e0abb_r.png”>analyze_kclass的功能是解决某一个元素的class中,有一个在整个dom中是唯一的,如: <li class=”page_item page-item-9088″>…</li> 中的 page-item-9088 ,那么使用 page_item page-item-9088 就出问题啦,要把类似 page-item-9088 这样的项去掉。

analyze_kclass的功能是解决某一个元素的class中,有一个在整个dom中是唯一的,如: <li class=”page_item page-item-9088″>…</li> 中的 page-item-9088 ,那么使用 page_item page-item-9088 就出问题啦,要把类似 page-item-9088 这样的项去掉。

【没代码 说个代码】

来自 强大的 Joe 的 代码:GitHub – qiaofei32/yunCrawler: 智能云爬虫Demo

【欢迎使用造数

造数 – 自己不想写云爬虫 可以直接来这里玩耍

    原文作者:数据挖掘
    原文地址: https://juejin.im/entry/58bf6d1a0ce4630054501ec3
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞