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

2020-11-24 22:00:25 +08:00
 fowill
小弟手上的某个学术项目需要 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 上也没啥有用的建议。

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

@wenfan 还不太厉害
lwt7278
2020-12-17 15:27:19 +08:00
我也遇到了这个问题,目前是 selenium 模拟的登录,大佬,请问你的问题解决了吗
fowill
2020-12-29 00:32:13 +08:00
@lwt7278 没有 我转用 selenium 来做了,但现在账号死的比较快,不知道怎么解决
Suthree
2020-12-29 19:18:17 +08:00
主要就是账户的问题,对账户的封禁会比较频繁,阈值较低
fowill
2020-12-30 20:14:26 +08:00
@Suthree 前辈对此有什么建议嘛,一两个月前领英对这方面还是比较宽松的,一个账号能抓几百个,现在直接干到抓 50 条左右就永久封禁了
lwt7278
2021-01-06 20:40:17 +08:00
@fowill 目前未登录,使用大量硬怼中
xuganggang
2021-01-27 15:02:12 +08:00
我最近也在做 LinkedIn 的数据抓取,不知道博主是否可以留个联系方式,咱们交流一下

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/728868

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX