百科问答小站 logo
百科问答小站 font logo



零基础如何学爬虫技术? 第1页

  

user avatar   chen-da-xin-84 网友的相关建议: 
      

【2018年3月更新!

本帖中的全新升级内容限时免费,可在三节课公开课中报名学习:

class.sanjieke.cn/class


看到楼上都没有提到Web Scraper,顺路介绍一下吧

达成效果:5分钟上手,1个小时包会的零基础爬虫技术;
无需编程,无需翻墙,不敲代码,只要一个Chrome(谷歌浏览器),适用于95%的网站抓取,轻松学会后受益终身;

最近在3.3计划的校友群里安利了十几人零基础爬虫技术,分享下录制的教学视频内容:

一、抓取工具简介

把数据抓取技术和软件分成了三个象限:

1)适应情况,能否抓取大部分网页内容;高票Excel的抓取功能简直是黑科技,但对于DIV形式网页,或者通过“滚屏下拉”动态加载更多数据的网页来说就比较棘手了;

2)生存能力,不被反爬虫技术甄别;矛与盾是永恒的话题,最近采集IT桔子时,被反爬虫机制识别后直接封IP到临时黑名单,连浏览器也无法打开主站了;

3)学习成本,大部分小伙伴一个月用不到一次数据抓取技术,投入较多时间成本不划算;

那么,Web Scraper的适用范围有哪些?

翻译一些该工具官网 (Web Scraper) 上的自卖自夸介绍供参考:

1)通过不同的选择器类型,可以链接到分页页面并抓取“文本型,表格型,图片,链接”等多种数据类型

2)不像其他的数据抓取工具只从html元素中抓取(有一种傲娇的感觉),Web Scraper可以支持动态加载数据类型,包含:

  • 等待页面中的动态数据加载完全
  • 自动点击分页按钮(第1页,第2页...)抓取更多数据
  • 自动点击“加载更多按钮”来抓取更多数据
  • 自动滚动下拉页面加载更多数据

3)“老师能不能再具体一点?” 来看三个样例吧:

知乎粉丝列表:

       https://www.zhihu.com/people/chen-da-xin-84/followers?page=1     

麦淘:

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

IT桔子:

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

二、工具准备(预计10分钟)

下面我们正式进入主题,首先需要两个工具:

  1. 谷歌chrome浏览器
    链接:谷歌浏览器下载-百度软件中心
  2. Web Scraper插件

或网盘链接 jianguoyun.com/p/DT2XOg (访问密码:uMfDv3)

下载后需要手动安装插件:【怎么安装Chrome插件】安装Chrome第三方插件_百度经验

三、上手体验(预计5分钟)

评论区有小伙伴反应无法点击F12召唤Web Scraper,可能是笔记本或Mac电脑的原因

  • Windows, Linux: Ctrl+Shift+I (love的I) or F12
  • Mac: Cmd+Opt+I
  • 如果为左右分屏模式,需要点击右上角的三个小点,切换为上下分屏模式


神秘代码:

       {"_id":"test","startUrl":"https://www.zhihu.com/people/chen-da-xin-84/followers?page=2","selectors":[{"parentSelectors":["_root"],"type":"SelectorText","multiple":true,"id":"Username","selector":"div.UserItem-title a.UserLink-link","regex":"","delay":"500"}]}     

开抓:

  1. 点击Scrape
  2. 设置抓取规则(默认即可),点击Start Scraping ;
    啊哈,在弹窗显示知乎粉丝页面后,抓取结果就直接出来了,如图:

3. 快乐地导出数据吧,点击export data as CSV,即导出为CSV格式

四、制作自己的第一只虫(预计10分钟)

  1. 在chrome中打开需要抓取的目标网址,按F12在Web Scraper中重新创建一个站点 Create sitemap; 输入站点名(自定义)和网址(输入目标网址)后,点击Create sitemap的确认按钮;
  2. 在新建选择器中,点击 Add new selector 新建选择器;
  3. Delay 写500ms,预留一定的页面加载时间;
  4. 选择器的配置:
  • Type选择Text文本形
  • 勾选Multiple按钮,表示本页中需要抓取多个元素
  • 点击 Selectorselect按钮,直接点击网页上的元素即可!!!
    绿色代表可采集的数据,点击后变成红色为锁定状态(具体可参见教程第16分钟)

点击第二个采集数据,程序自动判定所有同类型元素并红色锁定后,点击“Done selecting”


5.点击 Save Selector 并按照第三步中的抓取步骤进行后续采集操作(scrape → start scraping)

教学视频:

数据抓取入门_野生技术协会_科技_bilibili_哔哩哔哩 http://www.bilibili.com/video/av9664397/

五、进阶技巧1-页面采集多元素

聪明的同学已经尝试在一个页面里采集多个数据了,但往往发现是乱序,如图:

这就涉及到一个元素集(Element)的概念,首先我们把第一步骤提到的选择器删掉,新建一个type为Element的选择器,并选中多个列表项数据,并勾选复选按钮,如图:

保存后,点击新建的选择器,进入该选择器的下一级路径,采集用户名和个人描述

点击Select后,爬虫插件自动高亮了上一级-元素集的第一个元素,只需要点选中其中的元素即可(注意这次不需要选multiple了)

添加好采集器后,点击Selector graph查看树形结构(点击图片可查看清晰大图)

开抓,并获得理想的结果!

五、进阶技巧2-自动翻页/点击加载更多

和上一步介绍的元素集概念相似,对于下拉动态加载更多数据,以及需要点击才能加载更多的情况,介绍两个新type-滚动下拉元素集(Element scroll down) 和 点击元素集(element click),来看第一部分提到的其他两个案例吧:

1)麦淘(滚动下拉):


2)IT桔子(需要点击”加载更多“):


六、高阶技巧-采集子链接内页面

1)对于子链接的采集,通过type为点击元素集(Element Click)链接(Link)类型,

所有用LInk类型的情况都可以用Element Click的方式抓取;

但Link类型可以抓取网址链接;两者的使用范围区分可见下图:

案例1网址:巨潮资讯网 教程:如何批量下载 A 股招股说明书?

案例2还是之前的麦淘网址:m.maitao.com/classify/n

2)然后在Link或Element Click的下一级路径中(子链接)中建立选择器;


看实例:

案例1为了抓取每个子链接中右上角的下载地址,建立以下树形结构选择器:

第一个LInk类型的Detail为抓取子页面链接(此处可替换为Element Click);

第二个Link类型的没有下一级路径,只为抓取右上角的下载链接;

进阶视频:

数据抓取II-进阶_野生技术协会_科技_bilibili_哔哩哔哩 http://www.bilibili.com/video/av9708200/

user avatar   gui-gu-mi-tan 网友的相关建议: 
      

如果是单纯的迷茫,倒是不错的,只是这个问题,很容易让我想到。

叶公好龙。

叶公好龙的故事就是说古代有个人叫叶公,他到处跟大家说他特别喜欢龙,满屋子的龙的周边,还拉着附近的人去他家里看。

结果有一天真的龙飞来了,别人还在好奇,看看真的龙长啥样,他叶公跑的最快,躲到桌子底下,根本双手抱头,害怕得根本不敢睁开眼。

题主对文学的热爱应该如何体现呢?真的热爱是不用人说的,无法阻拦的,你自己就会有不断地看,甚至写的冲动,进而就去做了,也就是说热爱文学你就多看,通俗的,纯文学的,看的进去就多看,如果想写就试着写,不想写就继续看,就这么简单。

怎么热爱还需要别人教的吗?是不是不理解什么是热爱?

比如说我热爱音乐,我听到好的音乐我会感动,我会努力学唱歌,为了表达音乐,虽然还唱的不够好,但是我会学习怎么样才是唱的好。


user avatar   sgai 网友的相关建议: 
      

利益相关:第24届生竞国赛选手,银牌退役。

照这个说法我怕是被一只小龙虾挡在了北大的门外,真是呵呵哒。

媒体为了流量不要节操,寒的是热爱生命科学愿意在课业本就繁重的高中投入大量时间精力去学习的竞赛选手们的心。我们勤勤恳恳看书刷题做实验,秉烛达旦全年无休,却被一句轻飘飘的戏谑抹杀所有努力,这TM怎么能忍?

至于那些所谓权贵二代的阴谋化言论我想说,学竞赛买书做实验集训可能确实需要一点点财力支持,但学习方法因人而异丰俭由人,过五关斩六将的考试凸显的也是实实在在的能力,与家庭背景毫无扯上关系的可能。脑残和喷子们不过是看到了一个爆点,让他们自己高潮去吧。

PS微博用户财经太极猫在此前的南大支教事件中就发表了很多不良言论,这次又出来蹦哒,看到的朋友烦请顺手举报。




  

相关话题

  如何分辨验证码的“O”和“0”?程序员能否避免在验证码中出现这2个不容易分辨的字符。 
  为什么当年 Android 选择用 Java 作为开发语言? 
  编程新手如何提高编程能力? 
  新程序员如何向英文社区(如github)进阶? 
  如何看待全民学编程的热度? 
  如何看待“Python星人”这个群体? 
  足球队训练,教练会分析球员的哪些训练数据?分别代表了什么? 
  有哪些算法或数据结构是ACM大牛们在比赛中创造出来的? 
  最让你伤心的bug是什么? 
  老大只让用vi写代码该怎么破? 

前一个讨论
金融学中的 M2 是什么意思?
下一个讨论
有免费的网络爬虫软件使用吗?





© 2024-05-20 - tinynew.org. All Rights Reserved.
© 2024-05-20 - tinynew.org. 保留所有权利