首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python 学习手册
Python Cookbook
Python 基础教程
Python Sites
PyPI - Python Package Index
http://www.simple-is-better.com/
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
V2EX  ›  Python

花式反爬之某众点评网

  •  
  •   Northxw · 119 天前 · 5601 次点击
    这是一个创建于 119 天前的主题,其中的信息可能已经有所发展或是发生改变。

      某众点评网的反爬措施是真的🐮,但误伤率也比较高。如果没有加农炮(加强型爬虫代理 IP ),获取到的数据量会少之又少。

      除此之外,该网站设置了多种反爬措施,多种数据逻辑障碍等来 ban 爬虫,是我目前为止碰到的最难缠的网站。

      但是如果你真的造完该站点的爬虫程序,你会发现维护很累,基本上一天一个样(可能有点夸张)。但是作为训练目标,真的很有收获。

    https://github.com/Northxw/Dianping 项目已提交 github,欢迎提交 issue。

    54 回复  |  直到 2019-05-01 22:16:45 +08:00
        1
    PP   119 天前 via iPad   ♥ 1
    我记得在一篇文章里面读到过一个说法,反爬不是为了阻止爬虫,而是为了增加爬虫难度,所以要一天一个样,比的就是勤勉。

    有谁能够讲一讲爬虫和反爬的道理?论理不论事。请不吝赐教!
        2
    Klingon   119 天前
    #1 "比的就是勤勉" 🐂
        3
    lhx2008   119 天前 via Android   ♥ 1
    只要能被用户看到,理论上就可以被爬,但是大规模的爬已经有很多方法控制,现在就是小规模爬取上面打游击战
    @PP
        4
    dcalsky   119 天前 via Android
    楼主有研究过登录吗?登录接口需要带 cookie 才能成功的那种,而 cookie 的获取方式需要在页面上触发 click 事件从而发 http request。
        5
    ml1344677   119 天前
    @dcalsky 所以 cookie 池出现了
        6
    dot2017   119 天前
    点评是真的变态,我现在网页版基本就处于没法用的状态,打开一家餐厅就验证,验证以后还不会自动跳转
        7
    lithiumii   119 天前
    点评我网页版也经常用不了,后来才知道是反爬……
        8
    n329291362   119 天前 via Android
    爬客户端协议🌚
        9
    Northxw   119 天前   ♥ 1
    @n329291362

    @lithiumii 哈哈,被坑了吧

    @dot2017 公认的反爬比较变态的一家站点。

    @dcalsky 登录如果只要 cokkies 而没有加密参数,应该很 easy 的,但是不清楚你说的具体情况是什么

    @lhx2008 确实,但是当反爬成本比较高的时候,比如大众点评,维护费用真的很高的。

    @PP 没有真正的反爬,只有难度的加深,最终....
        10
    ml1344677   119 天前   ♥ 2
    @PP 高德的反爬从来不会限制你 IP 对服务器的访问,我需要抓取的数据里面有一个 list,顺序很重要。高德的反爬是将这个 list 的排序打乱,而你又要花计算成本去计算这个 list 是否正确。所以根本不是反爬虫,而增加了爬虫成本。
        11
    PP   119 天前 via iPad   ♥ 1
    @lhx2008 谢谢指点!祝好!

    @Northxw 您和那篇文章作者有同样的看法,看来高手在一些问题是是有很强的共识的。

    @vcinex 借地回复。您两天前 @ 我的信息今天才到,而且那篇文章我没有权限看到。根据文章的标题和您提出的问题,我大致猜测了一下事由,尝试回复和探讨一下。对于二次 clone 后再分享,要拆开,二次 clone 没问题,再分享会因为缺少授权而受到法律限制。在理论法律环境下,可能会因为不满足立案条件或难以评估损失而无法追责。现实中,口袋罪。我不是律师,信口开河,当不得真。
        12
    PP   119 天前 via iPad
    @ml1344677 似乎可以理解为增加重复性成本?受教!感谢!祝好!
        13
    vcinex   119 天前 via Android
    @PP 感谢大佬指点。
    另,长见识了才知道还有口袋罪这么个说法…
        14
    l0wkey   119 天前
    17 年时候学习 pyspider 框架时候练手爬过, 爬了 1200w+的页面,基本没感受到反爬😂...
        15
    TheBestSivir   119 天前
    别光爬啊,多用用我司产品啊。再爬就给你们爬倒闭了呀
        16
    stephenliubp   119 天前
    看看我的这个 Web 端反爬虫方案 : https://github.com/FantasticLBP/Anti-WebSpider
        17
    Northxw   119 天前
    @stephenliubp 可以的

    @l0wkey 哈哈 都过时了

    @TheBestSivir 哎吆。。
        18
    dcalsky   119 天前 via Android
    @Northxw 获取 cookie 很麻烦,需要真实的浏览器环境才行。
        19
    Aliennnnnn   119 天前
    @dcalsky 用 puppeteer 呀
        20
    JCZ2MkKb5S8ZX9pq   119 天前   ♥ 1
    说到某团我就来气。
    去年我们好好地爬着 x 红书,给客户做媒体方案,顶多限制 ip 频次,但也能用。

    然后大众 X 评 tm 就整个爬了 x 红书,把一堆现成的帖子评论放自己产品里,结果 x 红书立刻升级了反爬……
    大众 X 评自己嘛坑得一逼,贼当久了看谁都像贼。网页版正常访问,开一个页面都要验证至少两次。
    已经删了,偶尔用下小程序。
        21
    n329291362   119 天前
    @Northxw 他们客户端类似于 https 加密 好像没做反爬
        22
    Northxw   119 天前
    @dcalsky 你说的还是大众点评吗?

    @JCZ2MkKb5S8ZX9pq 哈哈哈,现在互联网数据不都是这样搞嘛 大家都心知肚明

    @n329291362 哦豁,还有这种操作,可以尝试一下啊
        23
    aver4vex   119 天前
    我碰到过必须开启 JavaScript 的网站,只能用 selinum 搞。
        24
    Northxw   119 天前
    @aver4vex 试试 pyppeteer 吧,要慢慢了解。不过 selenium 更大众化啦
        25
    dcalsky   119 天前 via Android
    @Aliennnnnn puppeteer 慢呀 高并发需求
        26
    tikazyq   119 天前
    已 star,考虑用 crawlab 来运行一下,https://github.com/tikazyq/crawlab
        27
    dcalsky   119 天前 via Android
    @Northxw 不是,一个需要登录的购物网站,我需要做下单
        28
    Northxw   119 天前
    @tikazyq 类似 Gerapy 的可视化工具嘛?看起来不错,已 star。

    @dcalsky 可以告诉下地址嘛,我也试试啦。
        29
    crab   119 天前
    @aver4vex js 这种扣出相关函数算出符合数据就行了。无规律给脏数据就很麻烦了。
        30
    jccg90   119 天前
    这垃圾网站,别说爬虫了。。。人去看都费劲。。。
    用 app 的接口爬还行
        31
    akira   119 天前
    反爬只能增加爬虫成本 并不能杜绝
        32
    Northxw   119 天前
    @crab 对的,大部分靠这种办法都能解决。

    @jccg90 哈哈,有点画面感哦

    @akira 对的
        33
    akira   119 天前
    @tikazyq crawlab 不错的样子,要是爬虫脚本能分享就好了
        34
    luanguang   119 天前 via Android
    大佬歪个楼……我想请问一下你是怎么提升爬虫技术水平的

    我是一开始是使用 pyspider 爬取一些网站,然后对爬虫开始感兴趣,然后看书敲代码,学 scrapy 框架。不过遇到反爬厉害一点的网站就只会用 selenium+代理池强行怼……所以想问问有什么继续进阶的方向。
        35
    tikazyq   119 天前
    @akira 正在考虑这个功能,不过是个大功能,可以关注一下,近期会考虑开发
        36
    akira   119 天前
    @tikazyq 参考下神箭手 他们家做的挺不错的了
        37
    fenghuang   119 天前
    是不是必须有代理池才能玩
        38
    Northxw   119 天前
    @luanguang 平心而论,感觉自己还比较菜。
    简单说:实践,实践,多实践。刷书后,多敲代码巩固,不管书上内容对个人来说多么通俗易懂,你不上手永元不知 Bug 所在。该过程可以完善你的知识框架。进阶的方向有很多:App,增量式,分布式( rabbit,celery 等),集群,大数据等,到时候自己决定。

    @fenghuang 小爬虫,便宜的付费代理可以搞一下
        39
    miaomiao0323   119 天前
    @stephenliubp #16 我的理解是对数字做了一次自定义的加密,但是前端解密肯定是在 js 的啊,爬虫可以找到这段 js,把你的算法解出来
        40
    PP   119 天前 via iPad
    @JCZ2MkKb5S8ZX9pq 哈哈哈哈,笑死我了。
        41
    aver4vex   119 天前
    @crab 我爬的那个网站是先检测浏览器是否启用 js,然后服务端负责跳转到不同页面。要是用的是 react,node,vue 之类的还倒好搞。
        42
    aver4vex   119 天前
    @Northxw 试一下,看看性能跟 selinum 比咋样。
        43
    matsuz   119 天前
    大众点评虽然爬起来比较麻烦,不过还好吧

    最麻烦的我感觉是天猫淘宝的搜索页
        44
    redsonic   119 天前
    说实在的,啥时候有基于人工智能的爬虫.
        45
    Northxw   119 天前
    @matsuz 你说的是基于登录界面的抓取吗?

    @redsonic 爬虫的趋势在向智能化系统方面发展,不过最终留下来的肯定是大虫啦
        46
    yanzixuan   118 天前
    @matsuz 淘宝?我正常使用都显示不了。
        47
    rocketman13   115 天前
    问一下计算偏移量的公式在那个文件可以找到呢
        48
    Northxw   115 天前
    @rocketman13 可以的,数字的偏移量计算比较固定,文字的偏移量计算比较多变,我在 md 文档里面有说明,你可以看下
        49
    bituplink   115 天前   ♥ 1
    @PP 可以看下这个图,我也刚尝试爬虫,但是觉得这个图让我更好的理解了爬虫与反爬虫的思路
    http://www.bituplink.com/python-crawler-study-six-level-graph.html
        50
    PP   114 天前 via iPad
    @bituplink 谢谢您的推荐和分享!祝好!
        51
    Don9   114 天前
    @Northxw 楼主你好,我是一个学生,最近在做一个社会调查,需要一个市级城市的餐饮数据,自己不是学编程专业的,对于大众点评这种有反爬虫网站实在是力不从心,您能帮我爬取一份数据么,如果可以,可以联系我 QQ:NjIwMDAwMjY1,万分感谢.
        52
    Northxw   113 天前
    @Don9 第一次见全英文扣扣号
        53
    Don9   113 天前
    @Northxw BASE64 编码
        54
    Northxw   113 天前
    @Don9 这个就有点骚了,也不给点提示
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   4205 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 30ms · UTC 02:08 · PVG 10:08 · LAX 19:08 · JFK 22:08
    ♥ Do have faith in what you're doing.