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

爬虫问题求助

  •  
  •   yichenchen · 2023-09-08 17:09:41 +08:00 · 1531 次点击
    这是一个创建于 470 天前的主题,其中的信息可能已经有所发展或是发生改变。
    想要爬取一个漫画站点的图片
    下图是 urllib.request.Request 然后通过 BeautifulSoup 转化的部分内容,想要其中的图片链接下载图片
    <a class="cartoon-cover" data-rseat="genrelist_01" href="/book/4683" target="_blank" title="監獄女囚">
    <div alt="監獄女囚" class="cropped" data-src="https://bmigmi-global.ccavbox.com/break_2/static/upload/book/4683/cover_pc.jpg?t=3" id="comic_4683_cover">
    </div>
    </a>
    然后是通过 requests 下载的一个测试
    headers = {
    'Accept': '*/*',
    'Accept-Encoding': 'gzip, deflate, br',
    'Accept-Language': 'zh-HK,zh;q=0.9,zh-CN;q=0.8,en-US;q=0.7,en;q=0.6',
    'Connection': 'keep-alive',
    'Origin': 'https://www.comicbox.xyz',
    'Referer': 'https://www.comicbox.xyz/',
    'sec-ch-ua': '"Chromium";v="116", "Not)A;Brand";v="24", "Google Chrome";v="116"',
    'sec-ch-ua-mobile': '?0',
    'Sec-Fetch-Dest': 'empty',
    'Sec-Fetch-Mode': 'cors',
    'Sec-Fetch-cors': 'cross-site',
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',
    }

    response = requests.request("GET", url, headers=headers)

    if response.status_code == 200:
    file = "./HM"
    with open('ccc.jpg', 'wb') as f:
    f.write(response.content)
    f.close()
    然而访问是 200 ,同时 response.content 也是有内容的,但是下载后的图片打开却提示文件已损坏
    同时查看浏览器的请求信息是发现同一个图片链接访问了两次,并且请求地址和我获取到的地址有变化
    https://bmigmi-global.ccavbox.com/break_2/static/upload/book/4683/cover_pc.b_0?t=9
    https://bmigmi-global.ccavbox.com/break_2/static/upload/book/4683/cover_pc.b_1?t=9
    请问这是该站点采用了某种图片的加密方式吗,我该如何下载这个图片呢
    4 条回复    2024-02-18 17:10:22 +08:00
    oldshensheep
        1
    oldshensheep  
       2023-09-08 18:30:28 +08:00
    加密了解密代码( JavaScript )

    async function decrypt(data) {
    const toUint8Array = dataString=>Uint8Array.from(dataString, c=>c.charCodeAt(0));
    const rawKey = toUint8Array("aaaaaaaaaaaaaaaa");
    const iv = toUint8Array("0123456789aaaaaa");
    const key = await window.crypto.subtle.importKey("raw", rawKey, "AES-CBC", true, ["encrypt", "decrypt"]);
    const result = await window.crypto.subtle.decrypt({
    name: "AES-CBC",
    iv: iv
    }, key, data);
    return result;
    }
    lizhenda
        2
    lizhenda  
       2023-09-08 23:37:49 +08:00
    所以说前端加密没有意义,一下就被扒出来了
    ila
        3
    ila  
       2023-09-09 12:11:45 +08:00 via iPhone
    现在 python 等语言运行 is 代码很容易,主要是找到加密代码
    kzhangWhy
        4
    kzhangWhy  
       307 天前
    有什么进展吗?我用 python 和油猴能转成出图片,但是转出来的图片是从底部往上渲染的。不知道问题出在什么地方
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2582 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 06:30 · PVG 14:30 · LAX 22:30 · JFK 01:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.