请各位大佬,如何成为一个合格的爬虫工程师? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
keyakizaka46
V2EX    Python

请各位大佬,如何成为一个合格的爬虫工程师?

  •  1
     
  •   keyakizaka46 2019-01-28 22:20:24 +08:00 6362 次点击
    这是一个创建于 2450 天前的主题,其中的信息可能已经有所发展或是发生改变。

    先说一下小弟背景:非科班出身,刚接触用 Pyhton 写爬虫两个月左右。 最近接到的任务是爬取淘宝商品列表上的信息,被各种反爬搞的焦头烂额,对于前端知识极度匮乏的我,终于体会到只有后端知识是远远不能成为一个合格的爬虫工程师,所以在此向各位大佬请教一条前端知识的学习路线。首先最起码能分析出对方的反爬手段,接着就是如何反反爬。老弟我在此先感谢大家的献言献计。

    第 1 条附言    2019-02-01 09:41:34 +08:00
    感谢各位大佬的留言,从你们的留言中,我大概知道要想成为合格的数据采集人员所需要的基本功底,脑海中也规划了后面的职业生涯该如何提升自己,谢谢,提前祝你们猪年大吉,工作上“猪”事顺利,财源猪笼入水。
    38 条回复    2019-01-30 15:56:14 +08:00
    lynskylate
        1
    lynskylate  
       2019-01-28 22:30:20 +08:00 via Android   3
    爬虫很难有好前途,天花板太低,干的活太杂,变化太频繁,很难有积累。一般公司爬虫框架都搭好了,你也很难去做架构,天天就是网站一遍去写解析脚本了。后端天天 crud 离业务好歹近,熟练了可以做业务方面的架构工作。
    总之,爬虫初级可以做,熟练后以后建议转后端或者转风控。
    lynskylate
        2
    lynskylate  
       2019-01-28 22:32:48 +08:00 via Android   1
    另外爬虫和前端关系不大,更重要的是分析反爬策略,破解网络接口。
    U7Q5tLAex2FI0o0g
        3
    U7Q5tLAex2FI0o0g  
       2019-01-28 22:48:33 +08:00
    歪个楼,我好像没听过“爬虫工程师”这个职位
    noli
        4
    noli  
       2019-01-29 00:08:12 +08:00 via iPhone
    第一步,先忘掉爬虫工程师这个名词。第二步,成为一个软件工程师。
    reus
        5
    reus  
       2019-01-29 08:34:30 +08:00
    低端工作,大佬才不会拿这个当工作
    showecho
        6
    showecho  
       2019-01-29 08:48:19 +08:00
    爬虫工程师?这种职位不是应该遮掩一下 至少换个名字吗?
    keyakizaka46
        7
    keyakizaka46  
    OP
       2019-01-29 09:07:46 +08:00
    @showecho
    @littleylv
    @noli 说得对,应更正为数据采集才对。
    aaa5838769
        8
    aaa5838769  
       2019-01-29 09:28:19 +08:00
    我觉得这个学会就行了- -,没必要深入吧- -
    supervipcard
        9
    supervipcard  
       2019-01-29 09:44:12 +08:00
    三个阶段(针对反爬)
    1.伪造 Headers 发请求然后解析,会处理 Cookie
    2.解决账号和 IP 封禁,简单的验证码,简单的接口参数加密
    3.破解各种行为式验证码和混淆 JS
    supervipcard
        10
    supervipcard  
       2019-01-29 09:45:55 +08:00
    至于你说的前端知识,个人认为没必要刻意去学,懂交互,HTML 会解析,能看懂并调试 JS 就差不多了
    CharlieBrown
        11
    CharlieBrown  
       2019-01-29 10:15:45 +08:00
    能看懂并调试 JS
    @supervipcard
    这就是很大一部分人需要学的前端
    zhangslob669
        12
    zhangslob669  
       2019-01-29 10:26:34 +08:00
    一年爬虫,准备转大数据
    locoz
        13
    locoz  
       2019-01-29 10:37:29 +08:00   1
    爬虫是需要啥东西都了解一下的,不是单单学点前端知识就能解决问题,如果单纯的是为了破解的话应该学的是逆向知识,举两个常见的例子吧:
    1、轻度混淆、没有用 eval 什么的加密的 JS 代码

    这种级别的代码根本不需要什么前端知识,会用浏览器开发者工具调试的人随便就能找出需要的东西是在哪生成的,别人调用的什么库直接上 google 查就好了,一些关键词( md5、sha256、aes...)也很容易辨认,一眼就能看出是干嘛的,再打个断点就知道具体参数是什么了,所以跟前端知识没啥关系。
    2、高度混淆 /加密+做了各种反调试检测的 JS 代码

    这种代码你让做前端开发的人来看都看不懂,对于这种 JS 代码来说,普通的前端知识根本不重要,需要的是用一些更底层的东西来恢复出这一坨屎一样的代码它原来的样子,而且一些反调试的操作根本不会是正常的前端开发会用上的,所以跟前端知识依然没啥关系。

    然后一些其他领域的东西也能作为你的工具,像你爬淘宝的话如果搞不定属于上面提到的第二种 JS 代码的 ua 参数生成,你还可以使用测试领域的自动化测试来做,如果觉得 PC 上的自动化测试对于当前需求的性价比不高,想要速度更快一些、资源占用更少一些、更稳定一些的,你还能在自动化测试的基础上加上安全领域的中间人攻击甚至更黑科技一点的操作,所以方法的多样性非常重要。(当然我遇到过的绝大多数只会用自动化测试工具爬的人水平也不咋样,逆向还是得会的)
    locoz
        14
    locoz  
       2019-01-29 10:37:59 +08:00   1
    @locoz #13 补上第二种代码的图
    x86
        15
    x86  
       2019-01-29 10:38:58 +08:00
    所有页面...所见即所得...
    TimePPT
        16
    TimePPT  
    PRO
       2019-01-29 11:01:20 +08:00   1
    推荐这篇《爬虫需谨慎!!!那些你不知道的爬虫反爬虫套路》
    http://dataunion.org/29654.html
    里面有提到爬虫和反爬的攻防对决,大概是能看到高等级玩家是怎么玩的了
    Johnson66
        17
    Johnson66  
       2019-01-29 11:08:22 +08:00
    学好 JS
    keyakizaka46
        18
    keyakizaka46  
    OP
       2019-01-29 13:33:07 +08:00
    @locoz 感谢
    houzhimeng
        19
    houzhimeng  
       2019-01-29 13:54:32 +08:00
    爬虫只能算副职业
    xiaozizayang
        20
    xiaozizayang  
       2019-01-29 14:02:30 +08:00
    爬虫确实天花板比较低,言归正传,自己以前写的一篇文章,希望对你有帮助 [博文链接]( https://www.howie6879.cn/post/2019/02-talk-about-python-spider/)
    wersonliu9527
        21
    wersonliu9527  
       2019-01-29 15:23:04 +08:00   1
    哎,我就是爬虫的,前端 java 都略懂。一般公司都搭好扩展好爬虫框架,每天写点解析,也有爬淘宝部分商品的需求
    对于我这种菜鸟,pc 淘宝网页很难搞,浏览商品都要登录,app 抓包更是头大。最后通过 https://h5.m.taobao.com 这个找到接口取到了需要的数据
    szetrov
        22
    szetrov  
       2019-01-29 15:52:27 +08:00
    @locoz 我勒个去这是用什么做的混淆诶,怎么有进制还有其他编码
    37Y37
        23
    37Y37  
       2019-01-29 16:03:37 +08:00
    就中国目前的法律来说,爬虫都是违法的。。。
    binux
        24
    binux  
       2019-01-29 16:05:06 +08:00 via Android   2
    @37Y37 少来这种把前提统统去掉,直接压缩到爬虫都是违法的
    penghong
        25
    penghong  
       2019-01-29 17:09:35 +08:00
    爬虫没有前途
    37Y37
        26
    37Y37  
       2019-01-29 18:24:35 +08:00
    @binux 开始你的表演,把前提给补上
    Kylin30
        27
    Kylin30  
       2019-01-29 18:32:23 +08:00
    小偷公司?
    locoz
        28
    locoz  
       2019-01-29 20:51:15 +08:00 via Android
    @szetrov #22 这是阿里的
    locoz
        29
    locoz  
       2019-01-29 20:57:22 +08:00 via Android
    @37Y37 #26 前提有很多,数据的版权问题、数据的用途、部分数据对源站点是否重要(比如原创视频、电商网站的价格、景点 /票务类网站的余票 /价格信息)、用户协议中是否有标明禁止爬虫采集 /逆向工程等都可以影响爬虫的违法与否
    locoz
        30
    locoz  
       2019-01-29 21:09:48 +08:00 via Android
    @37Y37 #27 顺便再举两个例子:
    比如你做了个网站,搜索引擎来爬你,你觉得违法的话那你的网站就不要让人家索引了呗,自己想办法导用户去;
    比如你控制着任天堂的 eshop,有人来爬不同地区的游戏价格,然后做了个比价网站给其他玩家用来参考,不管你觉得违不违法你都不一定会去管,因为根本不影响你的利益,有了这网站之后一部分玩家还会买游戏买得更欢,你收厂商的授权费和抽成还是一样的收,皆大欢喜。
    locoz
        31
    locoz  
       2019-01-29 21:10:51 +08:00 via Android
    @locoz #30 楼层数打错了 #27 -> #26
    richangfan
        32
    richangfan  
       2019-01-29 21:21:47 +08:00
    爬虫从入门到入狱
    forget166
        33
    forget166  
       2019-01-29 22:50:37 +08:00 via Android
    阿里系网站正一五时花六时变,没有一定量的代理 ip 和账号,第一关你就出局了
    37Y37
        34
    37Y37  
       2019-01-30 09:30:30 +08:00
    @locoz 学到了大佬,其实是未经授权的爬取应该都是违法的,这里不讨论数量,既然是需要爬虫去爬了数量肯定不会少,不管对方有没有告就法律层面来说就是违法的
    locoz
        35
    locoz  
       2019-01-30 10:36:48 +08:00
    @37Y37 #34 那你认为人肉爬虫违法吗?就是招一群实习生去 1688 上复制粘贴商品信息,然后上传到自家平台上的,这种公司我是见过的,从技术层面上来说这也是爬虫,只不过是人来做采集入库这个操作而已,但阿里并没有给过什么授权。
    如果要说这事情违法的话,在律条里也找不出哪条能定罪的,毕竟人家只是从 1688 上复制粘贴到另一个地方,也没侵犯阿里的什么权益,最终货源还是走 1688 上去采购。
    如果按“未经授权的爬取应该都是违法的”这种方式来说这公司是违法了的话,那是不是所有人在复制粘贴淘宝上的商品信息到微信上之前还要问一下阿里同不同意了呢?是不是当今社会上的几乎所有人都已经违法了呢?
    37Y37
        36
    37Y37  
       2019-01-30 11:43:31 +08:00
    @locoz 你这就抬杠了,人肉爬都整出来了
    locoz
        37
    locoz  
       2019-01-30 11:45:55 +08:00
    @37Y37 #36 没抬杠,这是我见过的实际情况,确实存在这样的公司,人家就是招实习生人肉爬的。
    binux
        38
    binux  
       2019-01-30 15:56:14 +08:00 via Android
    @37Y37 为了防止你耍赖满地打滚,你说的是所有,那我是不是指出一条合法的爬虫就可以了?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2758 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 36ms UTC 15:06 PVG 23:06 LAX 08:06 JFK 11:06
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86