zoukankan      html  css  js  c++  java
  • 爬虫工程师日常都是做什么。

    一 爬虫工作日常

    爬虫最终目的肯定是提供数据,就拿我自己日常上班所做的事来说,我们公司做爬虫的有两个。我们组是属于公司里的数据组,顾名思义专门提供数据的。我们提供的数据大致可以分成两类:1 算法组需要的数据,2 某个网站每天的数据。

    第一类数据主要是爬取一些小型网站的数据,比如维基百科、百度知道和一些算法组想爬的网站。算法组把需要爬的网站 url 和具体想要的数据内容以及格式,跟我们数据组的人说清楚,那我们就可以开始着手写代码了。一般简单的网站一上午的时间就可以搞定,之后就是等爬虫把数据爬完发送给算法组就好。

    第二类数据就是爬取特定网站的数据,每天都要爬,并且需要爬虫非常的稳定,这也是我们数据组核心工作内容。我们现在数据组最主要的工作就是维护这个 selenium 项目,完全用 selenium 来模拟一个人正常在浏览器上的操作。比如访问某个网站、输入账号和密码、点击图片验证码、获取手机验证码、点击链接、移动鼠标、拖动滚轮条、发送 js 请求等等。

    二 随时面对网页改版

    做爬虫有个天敌就是「改版」,只要对方的网站一改版,你所写的爬虫一定无法在继续使用。我刚工作的时候就非常幸运,遇到对方网站大改版,整个网页结构全部重构。而这个网站刚好是公司非常重要数据的来源,所以必须第一时间处理。那时候我才刚进公司没多久,就被老板叫去马上处理这件事。随后我用 xpath 整整写了 700 多行的解析函数。。。

    爬虫天生的劣势就体现出来了,即爬虫方永远是被动方。你不知道你爬取的网站什么时候会改版,会改成什么样,有会添加哪些反爬错失。而且往往对方是一个团队在做反爬,而大多数做爬虫的都是独胆勇士。

    三 破解各种反爬措施

    如果要衡量一个人爬虫实力有多少,就看他反反爬的能力有多强。爬虫代码说起来非常的简单,无非是构造请求、获取数据、解析数据、存储数据。难就难在反爬这块,这也是最能体现爬虫工程师实力的地方。最常见的反爬有验证请求头和 ip 频率限制,稍微难点就是图形验证,需要你点击图片中正确的文字,再者就是极验的轨迹滑动,终极难的就是阿里的反爬。

    而我们数据组工作的难点也是在这里,比如最近年底了,有很多网站都开始改版,反爬的措施也从最初的图形验证,改成了滑块验证,或者再加短信验证,甚至有个网站还加上了轨迹验证。。。

    而这些反爬手段,做为爬虫工程师都必须要解决。关于如何应对各种反爬,我之后会写篇文章来好好讲一讲。

  • 相关阅读:
    Codeforces 749C【模拟】
    Codeforces 358D【DP】
    Lightoj1122 【数位DP】
    Codeforces 744C【DFS】
    大晚上就是想说说话
    HDU5997 【线段树】
    codeforces743D 【DFS】
    lightoj 1422【区间DP·分类区间首元素的情况】
    lightoj 1125【背包·从n个选m个】
    Lightoj 1147【DP】
  • 原文地址:https://www.cnblogs.com/andy0816/p/15358075.html
Copyright © 2011-2022 走看看