V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
qingwalashi
V2EX  ›  问与答

付费征集 b2b.10086.cn 爬虫方案,需验证可行

  •  
  •   qingwalashi · 2020-11-25 15:49:51 +08:00 · 2148 次点击
    这是一个创建于 1438 天前的主题,其中的信息可能已经有所发展或是发生改变。

    悬赏征集 b2b.10086.cn 爬虫方案,无需代码,只需提供关键思路即可。

    解析网址是: https://b2b.10086.cn/b2b/main/listVendorNotice.html?noticeType=2https://b2b.10086.cn/b2b/main/viewNoticeContent.html?noticeBean.id=712215

    问题描述: 已通过 chrome 的 devtools 进行分析,但通过 postman 或者爬虫程序无法获得正确返回。填写 http header 依然无法获得,一直获得 412 Precondition Failed 的报错。

    悬赏方案: RMB 50 元(咖啡一杯)请大佬指点迷津,告知关键思路即可,需要你验证可行。根据评论的先后顺序我会逐一验证,第一个验证通过的评论我会进行答复,兑现悬赏付款。

    19 条回复    2020-11-26 08:59:25 +08:00
    qyvlik
        1
    qyvlik  
       2020-11-25 15:56:30 +08:00
    基于现有 浏览器插件 进行抓取,例如 web-scraper 。
    ReinerShir
        2
    ReinerShir  
       2020-11-25 15:58:37 +08:00
    八爪鱼爬虫工具不就完事了?
    oott123
        3
    oott123  
       2020-11-25 15:59:57 +08:00
    一个挺有意思的加密,50 块钱怕是不够分析的,如果要求不高的话还是上 headless chrome 吧
    mxT52CRuqR6o5
        4
    mxT52CRuqR6o5  
       2020-11-25 16:01:18 +08:00
    headless browser,虽然效率低点但比较无脑,也不怕在 js 层的非验证码类的校验
    siknet
        5
    siknet  
       2020-11-25 16:02:17 +08:00
    3 个 url 没一个能打开的。。。
    wangkun025
        6
    wangkun025  
       2020-11-25 16:03:51 +08:00
    @siknet 我都能打开。上海电信。
    qingwalashi
        7
    qingwalashi  
    OP
       2020-11-25 16:07:16 +08:00
    @oott123 这个没用过,我先研究下
    july1115
        8
    july1115  
       2020-11-25 16:34:48 +08:00
    赞同 4 楼的
    qingwalashi
        9
    qingwalashi  
    OP
       2020-11-25 16:55:06 +08:00
    @ReinerShir 已经验证不行了,设置规则后也是模拟浏览器进行点击动作抓取,和用 selenium 进行模拟一样,页面无法完全加载
    misaka19000
        10
    misaka19000  
       2020-11-25 16:56:03 +08:00
    加个零差不多
    siknet
        11
    siknet  
       2020-11-25 17:25:12 +08:00 via Android
    广西联通打不开,移动可以。
    火车浏览器试试吧
    xieren58
        12
    xieren58  
       2020-11-25 17:27:50 +08:00
    puppeteer
    miao666
        13
    miao666  
       2020-11-25 17:31:33 +08:00
    这个太简单了,只要频次不要太高
    开发一个 chrome 插件,模拟点击,再抓取 dom 内容,逐个抓取到 selectResult('712245')中的这个 id 值,存储到数据库中
    再开发一个插件,逐个访问 https://b2b.10086.cn/b2b/main/viewNoticeContent.html?noticeBean.id= 抓取到的 id
    全程都是模拟人操作,没有抓不到的数据
    qingwalashi
        14
    qingwalashi  
    OP
       2020-11-25 17:37:15 +08:00
    @misaka19000 不需要具体实现,给个思路验证成功即可
    siknet
        15
    siknet  
       2020-11-25 17:41:21 +08:00 via Android
    火车浏览器就是干这个的,我用来抓过携程和穷游
    qq316107934
        16
    qq316107934  
       2020-11-25 18:39:55 +08:00
    有一个按规则生成的 OTP,做了防重放,所有请求只能调用一次,所以第二次会 400 。
    调试一会儿 JS 就能发现关键加密函数了,抽出来调用即可,给个截图提示一下:
    ![image.png]( https://i.loli.net/2020/11/25/FAzy5kxfUZQ41Dp.png)

    仅供交流学习,请勿用于违法用途
    qingwalashi
        17
    qingwalashi  
    OP
       2020-11-26 08:57:34 +08:00
    @qyvlik 貌似没成功,或者是我不会用吧
    qingwalashi
        18
    qingwalashi  
    OP
       2020-11-26 08:58:29 +08:00
    selenium 和 puppeteer 都试过了,默认的参数都没读取成功,无法加载出来。
    qingwalashi
        19
    qingwalashi  
    OP
       2020-11-26 08:59:25 +08:00
    @qq316107934 大神好!确实发现了 400 的报错,这个加密函数还有 OTP 陷入我的知识盲区了,能再给点提示吗?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1220 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 18:15 · PVG 02:15 · LAX 11:15 · JFK 14:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.