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
dengshuang
V2EX  ›  Python

Python 爬虫学到破解 js 卡了,知识储备不足。求接下来的学习指导。。

  •  
  •   dengshuang · 2018-04-04 21:11:27 +08:00 · 8378 次点击
    这是一个创建于 2460 天前的主题,其中的信息可能已经有所发展或是发生改变。

    已经会 requests,bs4,xpath,框架还不太熟,但 scrapy 也简单用过。 前几天爬了一个漫画站,http://www.shenmanhua.com/douluodalu/597.html 我需要的一段字符串,百度了下,说是没有解密的字符串。。 求接下来的学习路径,是学习 js 吗。(我现在连 python 都还是半吊子,也没有太多精力去学另一个编程语言啊。)

    var mh_info = {imgpath: "J+8L+K<+?<+?=+K=+HJ+?=+K;+G:+G=+K?+??+><+K<+>H+><+K;+>>+><+K=+>?+>>+8L;?=+K>+GL+?J+8L"

    23 条回复    2018-04-07 09:41:21 +08:00
    F1024
        1
    F1024  
       2018-04-04 21:48:51 +08:00
    SingeeKing
        2
    SingeeKing  
       2018-04-04 22:12:56 +08:00
    request_html 然后让它渲染 js 解密
    qsnow6
        3
    qsnow6  
       2018-04-04 22:16:21 +08:00
    @F1024 瞬间终结
    huluhulu
        4
    huluhulu  
       2018-04-04 22:45:29 +08:00 via iPhone
    pyv8 直接运行 js 得到结果,看看变量是啥就行了。
    之前爬 smzdm 跳转链接居然还是混淆的,也是直接算出来的。
    wjm2038
        5
    wjm2038  
       2018-04-04 22:50:54 +08:00 via Android
    找 js 里调用 mhinfo 的地方,一定有解密方法的,找到之后直接拷贝下来本地 nodejs 搞就行
    qsnow6
        6
    qsnow6  
       2018-04-04 22:56:07 +08:00
    常见的加密方法 RSA、MD5、BASE64、urlcode、urlencode 都可以 看看
    manzhiyong
        7
    manzhiyong  
       2018-04-04 23:05:06 +08:00
    selenium 了解一下
    lozzow
        8
    lozzow  
       2018-04-05 00:42:33 +08:00
    推荐使用 request_html,好用的一批
    Trim21
        9
    Trim21  
       2018-04-05 01:36:49 +08:00
    原来还会慢慢找加密方式,现在懒了直接用 selenium 跑结果了
    locoz
        10
    locoz  
       2018-04-05 04:12:34 +08:00 via Android
    全局搜索是个好东西,pyexecjs 也是个好东西,两者结合起来就是找到解密部分直接用 python 调用。。
    emric
        11
    emric  
       2018-04-05 05:40:46 +08:00   ❤️ 3
    sunwei0325
        12
    sunwei0325  
       2018-04-05 09:09:17 +08:00
    request_html 加载 js 底层是用 pyppeteer, 可以了解一下
    azh7138m
        13
    azh7138m  
       2018-04-05 09:19:12 +08:00 via Android
    @qsnow6 base64,urlencode 居然算作加密,可以可以
    fiht
        14
    fiht  
       2018-04-05 09:26:31 +08:00
    个人觉得,爬虫的发展方向应该是写越来越稳固,设计能够多机运行,部署简单,数据承载量大的爬虫。
    死扣 JS 上升太慢了。MongoDB Hadoop Hbase Redis MQ 这种东西都可以了解了解。
    DebugJS 真的费脑子,而且前景有限不方便以后转行。
    dengshuang
        15
    dengshuang  
    OP
       2018-04-05 10:21:39 +08:00 via Android
    @F1024 这只能遍历一种漫画,每一种漫画都是不一样的
    dengshuang
        16
    dengshuang  
    OP
       2018-04-05 10:25:32 +08:00 via Android
    @locoz 萌详细的说说吗?全局搜索
    abcbuzhiming
        17
    abcbuzhiming  
       2018-04-05 11:06:49 +08:00
    说真的,除非你打算 JS 专精,否则真没必要去研究 JS 破解,这是一条逆向的道路,本身天赋和思路就和搞开发的不一样。再说了,再牛逼的 JS 加密你还不是要进浏览器,我上浏览器内核给你跑一遍,,什么结果不都出来了,无非就是慢一点,可能搜索引擎要求速度特快这个性能无法接受,但是我们自己的爬虫需要这么高的性能吗?
    wizardforcel
        18
    wizardforcel  
       2018-04-06 13:03:07 +08:00 via Android
    @abcbuzhiming 爬虫不走逆向的道路就是等死,你连分内的事情都搞不定。
    yamiedie
        19
    yamiedie  
       2018-04-06 23:56:02 +08:00
    @F1024 每一章的图片个数有办法获取么,虽然不是事必要获取...
    yamiedie
        20
    yamiedie  
       2018-04-06 23:57:01 +08:00
    @wizardforcel 虽然爬虫不能做一辈子,但是也肯定要找好以后的出路...
    locoz
        21
    locoz  
       2018-04-07 03:04:21 +08:00
    @fiht #14 个人认为爬虫是有两个发展方向的,而且都很极端,区别很大。
    一个是广撒网型的,就是你说的这种,问题在于碰到反爬的平台没办法,只能靠其他平台补充。
    另一个是精准打击型的,主要是逆向、针对某一个平台的反爬去破解。
    locoz
        22
    locoz  
       2018-04-07 03:07:35 +08:00
    @dengshuang #16 打开浏览器的开发者工具,按 ctrl+shift+f ( Chrome-Windows 下),简单难度的 js 直接搜加密参数名就能找到加密函数。
    F1024
        23
    F1024  
       2018-04-07 09:41:21 +08:00
    @yamiedie 网页源码里有 totalimg:12 就是 12 页 <script>var mh_info={imgpath:"J+8L+K<+?<+?=+K=+HJ+?=+K;+G:+G=+K?+??+><+K<+>H+><+K;+>>+><+K=+>?+>>+8L;?=+K>+GL+?J+8L",startimg:1,totalimg:12

    也可以循环下载 返回 404 的时候跳出 章节+1 继续下载就行了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2744 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 11:58 · PVG 19:58 · LAX 03:58 · JFK 06:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.