[技术求助] Linkedin 数据爬取 除了 selenium 有什么好的方法吗? 有关 csrf 的疑惑 - 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
fowill
V2EX    Python

[技术求助] Linkedin 数据爬取 除了 selenium 有什么好的方法吗? 有关 csrf 的疑惑

  •  
  •   fowill 2020-11-24 22:00:25 +08:00 4696 次点击
    这是一个创建于 1784 天前的主题,其中的信息可能已经有所发展或是发生改变。
    小弟手上的某个学术项目需要 Linkedin 的数据,抓取特定行业的从业人员信息。我是分两步来做的,第一步先弄到想要爬的人主页的 url,第二步再去挨个挨个抓这些 url 上的信息。

    目前第一步已经搞定,可能有几十万条的 url 要抓,但是第二步这里我有点犯难

    我的理解是这样的:领英的个人数据需要登录后才能展示,为了避免我们的账号被封禁的太快(账号是要成本的),我打算建一个账号 cookies 池,用一个进程维护这些 cookies,其他进程每次爬取时每次随机挑选一个 cookies 去模拟登陆,这样可以延长单个账号的使用时间。

    但是实验中发现,领英做了反 csrf 攻击的措施,仅用 cookies 是没办法实现模拟登陆的。为此我学了下 csrf 相关知识,发现它的关键参数 loginCsrfParam 、csrf_token 都在网页源码中 hidden 了,也会存储到 cookies 里,可以很容易地拿到。

    于是我用 requests 来尝试做模拟登陆,开了一个 Session,把这些关键参数作为表单 post 给领英的登录接口 https://www.linkedin.com/checkpoint/lg/login-submit 后,尝试去 get 我想要抓取的网页,但是还是无法正常显示,get 到的 html 内容为领英网站的加载 gif 。

    我开始觉得是我维护的 cookies 和我 post 的 form-data 中的 csrf 相关参数不匹配,导致服务器端识别出我在尝试 csrf 攻击,但是检查之后发现都是匹配的。这就让我感到奇怪了。

    我目前想用 requests 来做,不希望用 selenium 做自动化登陆,因为部署和账号池维护做起来比较折腾。

    有了解爬虫的前辈能指点下以下问题嘛:

    1.领英的反 csrf 是怎么做的,我的姿势对吗?
    2.领英是否有其他反爬手段?懂行的朋友能不能指点一二?
    3.Google 了一下,网上的领英相关爬虫都陈旧无用了,该上哪里咨询爬虫大佬? stackoverflow 上也没啥有用的建议。

    感激不尽!
    14 条回复    2021-01-27 15:02:12 +08:00
    knightdf
        1
    knightdf  
       2020-11-25 13:13:51 +08:00
    你这么抓需要 JS 的
    wenfan
        2
    wenfan  
       2020-11-25 13:49:24 +08:00
    我已经研究爬 LinkedIn 好几年了……他们家是反爬虫最厉害的一家了
    目前为止,我只找到了这一家网站可以有效地爬,但是效率也不是很高。
    https://phantombuster.com/apis
    fowill
        3
    fowill  
    OP
       2020-11-25 15:40:20 +08:00
    @knightdf 请问此话怎讲,哪里要用到 JS 呢?
    xnth97
        4
    xnth97  
       2020-11-25 15:44:49 +08:00
    完了...你这帖子被我看到了...
    fowill
        5
    fowill  
    OP
       2020-11-25 15:49:32 +08:00
    @xnth97 ?兄弟是 LinkedIn 的?
    fowill
        6
    fowill  
    OP
       2020-11-25 15:51:18 +08:00
    @xnth97 wok 还真是,但我貌似是被贵司的反爬给挡住了,应该没啥关系吧 hhh
    xnth97
        7
    xnth97  
       2020-11-25 15:57:36 +08:00
    @fowill lol 没事我不做反爬哈哈哈
    knightdf
        8
    knightdf  
       2020-11-25 17:31:05 +08:00
    @fowill 数据加载是 JS

    @wenfan 还不太厉害
    lwt7278
        9
    lwt7278  
       2020-12-17 15:27:19 +08:00
    我也遇到了这个问题,目前是 selenium 模拟的登录,大佬,请问你的问题解决了吗
    fowill
        10
    fowill  
    OP
       2020-12-29 00:32:13 +08:00
    @lwt7278 没有 我转用 selenium 来做了,但现在账号死的比较快,不知道怎么解决
    Suthree
        11
    Suthree  
       2020-12-29 19:18:17 +08:00
    主要就是账户的问题,对账户的封禁会比较频繁,阈值较低
    fowill
        12
    fowill  
    OP
       2020-12-30 20:14:26 +08:00
    @Suthree 前辈对此有什么建议嘛,一两个月前领英对这方面还是比较宽松的,一个账号能抓几百个,现在直接干到抓 50 条左右就永久封禁了
    lwt7278
        13
    lwt7278  
       2021-01-06 20:40:17 +08:00
    @fowill 目前未登录,使用大量硬怼中
    xuganggang
        14
    xuganggang  
       2021-01-27 15:02:12 +08:00
    我最近也在做 LinkedIn 的数据抓取,不知道博主是否可以留个联系方式,咱们交流一下
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     967 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 22ms UTC 22:38 PVG 06:38 LAX 15:38 JFK 18:38
    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