V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
webee
V2EX  ›  分享创造

关于复杂网站的前端并行爬取方式

  •  
  •   webee ·
    webee · 2019-07-03 17:14:06 +08:00 · 3014 次点击
    这是一个创建于 1971 天前的主题,其中的信息可能已经有所发展或是发生改变。
    朋友让我帮忙爬取一些数据,由于目标网站( http://epub.sipo.gov.cn/gjcx.jsp) 采用的防爬虫策略,简单的模拟请求不行,使用 headless browser 简单试了一下,也不行; 由于我并不怎么做爬虫这块,想到在前端使用 js 爬取再提交到后端应该是最简单的,于是在浏览器中简单实验之后发现是可行的。

    于是写了一个后端服务用于分配任务和收集结果
    https://github.com/webee/PatentFetcher
    后端提供两个接口给前端爬虫使用:分配任务,提交结果

    前端提供一个 user script 执行具体爬取
    打开多个标签(注:浏览器有单个 ip 连接数限制),或多个浏览器, 甚至开不同的机器就可以实现分布式并行前端爬取了。

    搞定这个事情之后,就有个想法:
    前端爬取其实跟使用 headless browser ( Selenium,PhantomJS 等)原理一样的,都是模拟真实的前端环境,但这里的关键是分散地使用真实的客户端, 利用人们空闲的计算和流量资源,而不是使用自己的服务器。
    这可以解决许多复杂爬取面临地很多痛点:ip 限制,人机验证,足够的服务器,爬取速率等

    是否可以使这个方法通用化,类似众包的方式,搞一个任务平台,设计不同的执行前端( pc 客户端,浏览器 user script, app sdk, 专门的 app ),通过给用户付费,或者给开发者任务积分实现互助爬取,以解决一些复杂网站的爬取问题?

    我搜索了一下关于前端爬虫的项目,有些是纯独立客户端的前端爬取,有个类似想法的 DSpider,没怎么开发了。

    一个人的想法总是有局限的,
    欢迎大家讨论一下,这个事儿是否有意义,是否可行?
    9 条回复    2019-07-11 17:30:48 +08:00
    ho121
        1
    ho121  
       2019-07-03 17:46:25 +08:00 via Android
    买代理不行?
    webee
        2
    webee  
    OP
       2019-07-03 18:00:45 +08:00
    @ho121 这里主要不是代理的问题,如果能简单的在后端爬取,代理当然可行。
    这里的问题是对于复杂的不那么好爬取的网站使用前端爬取,解决各种后端爬取的痛点,同时实现资源共享。
    qilishasha
        3
    qilishasha  
       2019-07-03 18:01:15 +08:00
    在某宝有人出售肉鸡 API,便宜得很,不知道是不是有法律风险
    silencefent
        4
    silencefent  
       2019-07-04 08:59:46 +08:00
    流量宝这个软件听说过吗,理论上和你这个差不多一个意思
    Fcsle
        5
    Fcsle  
       2019-07-04 10:33:23 +08:00
    @qilishasha 关键词是啥
    qilishasha
        6
    qilishasha  
       2019-07-04 13:02:22 +08:00
    @Fcsle 所有的卖代理的都有
    webee
        7
    webee  
    OP
       2019-07-04 15:31:19 +08:00
    @silencefent 流量宝还是使用自己的的服务器来做刷流量的事情,其实我想的是真实用户共享合作来分享算力和流量,和众包是一个意思。
    webee
        8
    webee  
    OP
       2019-07-04 15:34:40 +08:00
    @silencefent 不好意思,仔细了解了一下,流量宝,确实也是共享的思想。。
    yangweijie
        9
    yangweijie  
       2019-07-11 17:30:48 +08:00
    专利这块爬取是很麻烦的,包括天眼查 和 zf 统一信用代码 甚至用上了 极验验证码。我都奔溃了,然后搞了个和你们思路一样的人肉采集,本来想开发 像京价宝 这样的插件的,时间未允许,后来就直接书签 写动态 js 采集 并请求后端更新数据,但是 必须协议一致。https 必须也 https。然后老板嫌麻烦 买了企查查的接口。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4335 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 48ms · UTC 04:11 · PVG 12:11 · LAX 20:11 · JFK 23:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.