• 爬虫入门(一)基于webmagic理解爬虫原理及核心业务逻辑


    0.爬虫逻辑
      一句话,对网页进行处理,偷到想要的数据,比如文章标题内容,然后存起来.
      核心步骤:
      下载页面--处理(从page收集数据)--管理(做后续处理)--储存(持久化到文件或DB)
      在webmagic里分为四部分 Downloader、PageProcessor、Scheduler、Pipeline四大组件
      这四大组件对应爬虫生命周期中的下载、处理、管理和持久化等功能
      学习webmagic可以在http://webmagic.io/docs/.全中文很方便
    1.下载page
    首先在这个步骤一般通过httpClient,或httpConnection,url这几个类去实现下载功能.
    这个步骤会存在403问题,网站拒绝访问.可能是因为缺少一些请求头,比如user-agent,cookie等等.
    因为网站检测到你是不真实访问.或者连续访问频率过高.这几个问题可以在代码里加header或者修改频率,一般爬虫框架都有对应的方法.
    2.对每个想要的数据进行处理
    面向数据字段做分析,使用xpath或者正则匹配想要的数据.
    在webmagic获得链接可以在拿到a标签的基础下调用link()方法即可.webmagic的xpath的拿属性的语法(@attribute)没支持.
    3.管理
    核心逻辑是一是对待抓取的URL队列进行管理。二是对已抓取的URL进行去重。如果你只是在本地执行规模比较小的爬虫,那么基本无需使用这方面.URL管理很重要,自动化的爬虫不应该需要输入多次目前路径,而是让爬虫自己去匹配和寻找子URL,直到无URL可爬.
    4.持久化
    存储到磁盘.以固定数据格式(比如Json)储存到文件或者储存到DB是常见的操作.
    5.思考
    理解爬虫后,就明白为什么SEO里需要将网页静态化,减少动态网页的加载,对爬虫友好也意味着在搜索引擎里可以相对靠前.
    爬虫是数据分析的基础,结合大数据做mapreduce也是很常见的.另外爬虫也需要讲求效率,多线程的操作,这些算是高级爬虫 开发者必备的知识.初入门的人核心在于数据匹配能力(正则xpath等语法能力和工具的熟悉),进阶的玩家应该学会如何处理动态网页(前端渲染的网页),比如爬虫内嵌浏览器内核,使用Selenium、HtmlUnit或者PhantomJs工具,但更好的是自己分析异步请求,搞清楚懒加载.
    因为网站的html偶尔有改变,这也许就是爬虫岗位持久不息,一套吃不死的原因吧.
     
    转载请注明来源,谢谢
  • 相关阅读:
    Codeforces Round #274 (Div. 2)
    codeforces 477C
    ZOJ 3822 Domination
    Codeforces Round #271 (Div. 2)
    进程
    线程
    udp和tcp特点 实现文件上传
    面向对象补1
    socket基本语法和粘包
    网络编程
  • 原文地址:https://www.cnblogs.com/zhhiyp/p/qq1479574540.html
Copyright © 2020-2023  润新知