Python爬虫之煎蛋网妹子图爬虫,解密图片链接加密方式

[Python爬虫]煎蛋OOXX妹子爬虫(1)——解密图片地址 之前在鱼C论坛的时候,看到很多人都在用Python爬虫煎蛋妹子,当时我也写过,爬了很多的妹子图片。后来煎蛋妹子页改进了,对图片的地址进行了加密,所以论坛里面的人经常有人问怎么请求的页面没有链接。这篇文章就来说一下煎蛋OOXX妹子的链接获取方式。 首先说明一下,之前煎蛋之所以增加了反爬虫机制,应该就是因为有太多的人去爬他们的站了。爬虫频繁的访问站会给站带来压力,所以,... 阅读详情

之前在鱼C论坛的时候,看到很多人都在用Python写爬虫爬煎蛋网的妹子图,当时我也写过,爬了很多的妹子图片。后来煎蛋网把妹子图的网页改进了,对图片的地址进行了加密,所以论坛里面的人经常有人问怎么请求的页面没有链接。这篇文章就来说一下煎蛋网OOXX妹子图的链接获取方式。

首先说明一下,之前煎蛋网之所以增加了反爬虫机制,应该就是因为有太多的人去爬他们的网站了。爬虫频繁的访问网站会给网站带来压力,所以,建议大家写爬虫简单的运行成功就适可而止,不要过分地去爬别人的东西。

爬虫思路分析

图片下载流程图

首先,用一张简单的流程图(非规范流程图格式)来展示一下爬取简单网的妹子图的整个流程:

煎蛋网爬虫流程图

流程图解读

1、爬取煎蛋网的妹子图,我们首先要打开任意一个妹子图的页面,比如 http://jandan.net/ooxx/page-44#comments 然后,我们需要请求这个页面,获取2个关键的信息(后续会说明信息的具体作用),其中第一个信息是每个妹子图片的 hash 值,这个是后续用来解密生成图片地址的关键信息。

2、在页面中除了提取到图片的 hash 之外,还有提取到当前页的一个关键的js文件的地址,这个js文件中包含了一个同样是用来生成图片地址的关键参数,要得到这个参数,必须去请求这个JS地址,当时妹子图的每个页面的js地址是不同的,所以需要从页面中提取。

3、得到了图片的 hash 和 js 中的关键参数之后,可以根据js 中提供的解密方式,得到图片的链接,这个解密方式后续用Python代码和js代码的参照来说明。

4、有了图片链接,下载图片就不多说了,后续会有第二篇文章,来使用多线程+多进程的方式下载图片。

页面分析

网页源代码解读

我们可以打开一个妹子图的页面,还是最开始的 http://jandan.net/ooxx/page-44#comments 为例,然后查看源代码(注意,不是审查元素),可以看到本应该放图片地址的地方并没有图片地址,而是类似于下面的代码:

<p><img src="//img.jandan.net/img/blank.gif" onload="jandan_load_img(this)" /><span class="img-hash">ece8ozWUT/VGGxW1hlbITPgE0XMZ9Y/yWpCi5Rz5F/h2uSWgxwV6IQl6DAeuFiT9mH2ep3CETLlpwyD+kU0YHpsHPLnY6LMHyIQo6sTu9/UdY5k+Vjt3EQ</span></p>

从这个代码可以看出来,图片地址被一个js函数代替了,也就是说图片地址是由这个jandan_load_img(this)函数来获取并加载的,所以,现在的关键是,需要到JS文件中查找这个函数的意义。

js文件解读

通过在每个js文件中搜索jandan_load_img,最后可以在一个地址类似于 http://cdn.jandan.net/static/min/1d694f08895d377af4835a24f06090d0.29100001.js 的文件中找到这个函数的定义,将压缩的JS代码格式化查看,可以看到具体的定义如下片段:

function jandan_load_img(b) {
   
   
    var d = $(b);
    var f = d.next("span.img-hash");
    var e = f.text();
    f.remove();
    var c = f_Qa8je29JONvWCrmeT1AJocgAtaiNWkcN(e, "agC37Is2vpAYzkFI9WVObFDN5bcFn1Px");

这段代码的意思很容易看懂,首先它提取了当前标签下css为img-hash的span标签的文本,也就是我们最开始说的图片的 hash 值,然后把这个值和一个字符串参数(每个页面的这个参数是变动的,这个页面是 agC37Is2vpAYzkFI9WVObFDN5bcFn1Px)一起传递到另外一个函数f_Qa8je29JONvWCrmeT1AJocgAtaiNWkcN中,所以我们还要去查看这个函数的意义才行,这个函数就是用来生成图片链接的函数了。

f_ 函数的解读

可以在js中查找这个f_函数的定义,可以看到有两个,但是没关系,根据代码从上到下执行的规律,我们只需要看比较靠后的那个就行了,完整的内容如下:

var f_Qa8je29JONvWCrmeT1AJocgAtaiNWkcN = function(m, r, d) {
   
   
    var e = "DECODE";
    var r = r ? r : "";
    var d = d ? d : 0;
    var q = 4;
    r = md5(r);
    var o = md5(r.substr(0, 16));
    
python 爬取煎蛋ooxx妹子 煎蛋妹子首页(http://jandan.net/ooxx),这个链接看起来怎么那么邪恶呢?经分析站隐藏了图片地址。心一横,采取曲线路线,成功爬取大量妹子~ 源码如下: 1 import requests 2 import re 3 import os 4 import base64 5 from urllib.request import urlretrieve... 阅读详情

相关推荐

Python爬虫入门【15】:煎蛋XXOO图片抓取

今天写一个爬虫爱好者特别喜欢的煎蛋http://jandan.net/ooxx,这个站其实还是有点意思的,站很多人写了N多的教程了,各种方式的都有,当然站本身在爬虫爱好者的不断进攻下,也在不断的完善,反爬措施也很多,今天我用selenium在揍他一波。 整体看上去,煎蛋妹子质量还是可以的,不是很多,但是还蛮有味道的,这可能也是爬虫er,一批一批的奔赴上去的原因。 1. 站分析...

Python8年程序员教程分享 1万+

python3 爬煎蛋ooxx妹子

import re import urllib.request import random import os import http.server import http.client from urllib.error import URLError, HTTPError import urllib.parse proxy = [] #定义代理IP列表 def change_proxy(

老中医 4万+

有声库/有声社/有声照片/有声图片

安卓上面制作有声照片的工具,并且有社区分享功能

爬虫煎蛋的mm图片

import urllib.request import os url_list = [ 'http://jandan.net/ooxx/MjAyMDAxMTUtMTM3#comments', #每一页的URL,当前是136页 'http://jandan.net/ooxx/MjAyMDAxMTUtMTM2#comments', 'http://jandan.ne...

mtldswz312的博客 4950

Python爬虫:煎蛋图片URL解密处理

转自:https://yukunweb.com/2018/5/jiandan-encryption-processing/?page=1俞坤的博客 最近一直有朋友问我改版的煎蛋妹子怎么爬,因为他们花费精力结果抓了一整个文件夹的防盗。我之前在很久以前的一篇博客说过,对于这种js处理的页,要想抓取到页上看到的数据,大致有三种方法: Selenium结合浏览器驱动,直接获取加载js后的页...

qq_40801709的博客 1259

某个OOXX的软文,存下

刚刚把店里的门关上,就接到我兄弟啊桥的电话:“森哥,收工没,出来坐坐。” “得,8点整老地方。”我答到,这小子,昨天打电话给叫他出来他说接待客户没时间,现在怎么有空了。 最近店里不是很好,心情有点闷,正想找人喝酒,“是不是要改行不做钢铁了。”我突然冒出这个念头。 到了老地方,他已经点好东西等我,我直接就坐在沙发上,他递烟给我。我抽出一支,凑在鼻子上闻

lusizeng的专栏 2万+

络相关

如何查看本机所开端口 用netstat -a —n命令查看!再stat下面有一些英文,我来简单说一下这些英文具体都代表什么 LISTEN:侦听来自远方的TCP端口的连接请求 SYN-SENT:再发送连接请求后等待匹配的连接请求 SYN-RECEIVED:再收到和发送一个连接请求后等待对方对连接请求的确认 ESTABLISHED:代表一个打开的连接 FIN-WAIT-1:等待远程TCP连

dd916的专栏 8219

Python煎蛋XXOO图片抓取

今天写一个爬虫爱好者特别喜欢的煎蛋http://jandan.net/ooxx,这个站其实还是有点意思的,站很多人写了N多的教程了,各种方式的都有,当然站本身在爬虫爱好者的不断进攻下,也在不断的完善,反爬措施也很多,今天我用selenium在揍他一波。 整体看上去,煎蛋妹子质量还是可以的,不是很多,但是还蛮有味道的,这可能也是爬虫er,一批一批的奔赴上去的原因。 1. 站分析...

Python追梦 7万+

【2】基于python爬虫笔记(实战)

上一章讲了如何通过使用pyhthon的方法实现代理访问,这一章讲进行实战,比一个站的图片自动化下载下来 目标站:自己寻找任何一个图片站,下面直讲解方法 1.分析站元素,通过浏览器的审查元素查看  首先每张图片都有一个指向这组的链接,要获取这个链接添加都一个列表里,然后在一个个遍历去下载对应链接里的图片,这里用get_page_num_1(url)来处理 进到每组里,不会一页...

Killua 762

python爬取煎蛋妹子,已解密图片~~~~~

本来想爬一波无聊,唉,竟然加密了。。。。 还好是base64 不说了,代码献上 2018.12.14 有效。。。。。 import requests from bs4 import BeautifulSoup import base64,time base64_list = [] print('====开始爬取=====') starttime = time.t...

weixin_30265171的博客 952

gif动态gif出处_我喜欢GIF的怪异事物

gif.js 生成gifI was recently reminded that I never wrote down all the weird things I learned about the GIF file format when implementing GIF decoding/playback at work last year. (I was reminded of this ...

weixin_26732881的博客 1万+

bind dlz mysql rpm_centos7搭建MySQL+BIND-dlz

环境说明Linux:centos 7.4.1708Mysql: Ver 15.1 Distrib 10.1.32-MariaDBBIND: 9.12.1安装mysql创建/etc/yum.repos.d/MariaDB.repo文件> cat /etc/yum.repos.d/mariadb.repo[mariadb]name = MariaDBbaseurl = http://yum.ma...

weixin_39785669的博客 1007

个人站:煎饼(五谷杂粮好!)正在建设中

http://www.ooxxab.com/ http://www.ooxxab.cn/ http://www.ooxxab.com.cn/ 转载于:https://my....

chuanyinbie7323的博客 2345

[Python 爬虫]煎蛋 OOXX 妹子爬虫(1)——解密图片地址

之前在鱼C论坛的时候,看到很多人都在用 Python爬虫煎蛋妹子,当时我也写过,爬了很多的妹子图片。后来煎蛋妹子页改进了,对图片的地址进行了加密,所以论坛里面的人经常有人问怎么请求的页面没有链接。这篇文章就来说一下煎蛋 OOXX 妹子的链接获取方式。首先说明一下,之前煎蛋之所以增加了反爬虫机制,应该就是因为有太多的人去爬他们的站了。爬虫频繁的访问站会给站带来压力,...

husongbo的博客 3万+

Cookie-free Domains

所谓 Cookie-free Domains, 翻译成中文叫"饼干免费域名" 但是翻译英文的时候有一种高深的语法叫倒装, 一般同学难以理解就不用转牛角尖了 说白了就是反过来翻译, 那么正确的翻译就是 免费饼干域名! 聪明的同学一看就明白了 有点呆的同学继续听我讲 免费饼干域名 说白了就是这个域名不会产生cookie 为什么不能让域名产生 cookie 呢? 当浏览器向...

xscool的专栏 2389

爬取随手拍的图片(包含了解密加密

随手拍 (jandan.net)http://i.jandan.net/ooxx/MjAyMjA0MjUtMTc=#comments 后缀中的 MjAyMjA0MjUtMTc=是加密后的字符串,因此要通过base64进行解密解密后发现这些字符串代表的是:当天的年月日-页号,如前面的字符串就是:20220425-17 我处理上面的方法就是引用tim

qq_51096893的博客 1625

gif 格式图片详细解析

1.概述 ~~~~~~~~   GIF(Graphics Interchange Format,形交换格式)文件是由 CompuServe公司开发的形文件格式,版权所有,任何商业目的使用均须 CompuServe公司授权。   GIF象是基于颜色列表的(存储的数据是该点的颜色对应于颜色列表的索引值),最多只支持8位(256色)。GIF文件内部分成许多存储块,用来存储多幅象或者是决

5万+

爬虫】邪恶gif出处爬虫

这是一个罪恶的爬虫 爬取 http://www.27gif.net/gifcc 中的gif,并以‘神秘代码’为它的文件名保存。 ------------------------------------------------------------------------------------------------------ import requests from bs4...

weixin_30646505的博客 3万+
上一篇: Python 爬虫之 selenium 爬虫,模拟浏览器爬取天猫信息
下一篇: 在 Linux 服务器上使用 Nginx + Gunicorn 部署 Django
Stopfollow
博客等级 码龄9年 7粉丝 2原创
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值