这个爬虫来自于一个问答贴:

看雪论坛:https://bbs.pediy.com/thread-256306.htm

吾爱破解:https://www.52pojie.cn/thread-1075559-1-1.html

发帖人是一个人。

感谢大佬提供技术支持:

切丝怕怕:https://bbs.pediy.com/user-733836.htm

这大概是我遇见反爬做的,最,那啥的小说网站了,网站如下:

https://www.sztjgold.com/chapter.html?2#mybookid=83751&bookid=96158&chapterid=42616795

说几点:

一,首先需要知道bytes类型是可遍历的,emmmm,我是才知道。

二,python里ord和chr的使用,我个人好像是第一次使用,尴尬

说一下反爬:

1,小说内容不在源码里,所以无法直接获取;

2,小说内容经过加密和base64编码后,放在一个html页面,这个页面返回的是杂乱的js,需要格式化

3,这个html页面可以直接拼接,也可以按照源码里比较简单的js来改写成python语言生成

如图:

查看源码时,有如下生成链接的js,url_get_data就是对应的html链接

js需要的参数都在https://www.sztjgold.com/chapter.html?2#mybookid=83751&bookid=96158&chapterid=42616795里面

可一一对应。

经过上一步获得的html链接

对应的html链接与内容:

右侧内容很杂乱,可格式化之后,放入pycharm命名为js文件来分析

因为论坛的重要信息比较凌乱,这里整理并补充一下,因为经验原因,这些东西陆陆续续的做了三四天。

首先是看雪论坛以为大佬的代码,我把他实现并理解了一下:

s = """
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wpXCvTUNCkliHnRTMMO4UFTDtwMHflDDjwEwwrXDscKXw4/ChMOW5bys5ras5LiE55W45b+N6YKj5YWu5LmT5rGO77215Lqj5biC5aaG5Lq877yc5ZON5aaz6LyW5piX562A5LuI5q6y6Ly/5Lu85a6K5b+C5aWv44K5w5Vkw4wrwrg+NsK3Lh5Zw7wKw6zCn2F1KGFvw6rDojDCksKoMhzCosKgN8KvwrpeFcK7FuKDveWTqu+/vuaIheiug+S9lOiFv+Wuleechei2huS5qO+9luS9neWKg+S4ueadseazpu+/uuKDqcOrw5jCoXPDgXTCmMKDD0PCgnnCqm46w5jCisKdA8OZBsKRairDogEMwrxYLcKPbnVvMsKS5ZCo5aaq5o6C55yj5b6P5rWr5Lmg55qH6b2C5a6t77+15o6N552H6K+06YKx772A4oOY5om85ZOM5ZWS5bG55aah5LiV5LiV5Lix6YCI5rKL5p6g77+/5Lq36KaY5Lqh5Li46IWn5rCD6YKf5b6u5ouD6Lq25Lup5rKv77+t5Y6n5aeh77yw5L2H6Kar5byb5Y695Y+F5Lue5LuY5Za95bCG5aWR5bKn6IG56K265b6o5Yu+6ImR6bim5Li477y65bK05L206L+B5pmU5ZSd77+/5Lq95puF6Iao5a+y55626LWR5puG5Lq25Lin772D4oCuw7jChMKWHsKiwobCsDfDk8O+wpXDpcK9cz18w6fCnALDpcKgXTDDpGnDmsOwwpLCmWkVwpLCrVzCv8O34oCC6L67wrvDgsK/w6PDhm3ig55OBsORDV8Mw4tWwotTA2EzwqLCjynDlSzCsytGwr3Ch8Otw4jDg8OEwptwLhYow5DDtm3CoeW+gua0huS7peWThOWulei+gOivouaHluS/oeS5r++9q+iygOS+teWQi+Wmheiuneeat+S6guaesOeCuumAseeSnOWUl+OBjBI/UsKOXhLCui7DiiTDt3DDocKEw4vDjsKJwr5zw5QHwqUjAABzw5V0wobDoMK1w7djw64gw4zoiZbpurTkub7pgonku57kvIvpqYTmnInphY3nmr/vvJjog67mmZHku4boiqvkurDlkbnvvYvpmYTlq6DorqfllJvlsLLlp5Llto3ljovkuafoiZ/pubvkuLDvvYbnnIzmnoLnnpvnmIfkua7lpKLl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
"""# 解码
s = base64.b64decode(s)temp = ''for i in s:temp += '%' + '%.2x' % i# print(temp)_0x2bb54a = unquote(temp)
# print(_0x2bb54a)
_0x998f21 = [i for i in range(256)]_0xe50218 = 0for _0xe91751 in range(0x100):_0xe50218 = (_0xe50218 + _0x998f21[_0xe91751] + ord('&f2F'[_0xe91751 % len('&f2F')])) % 0x100_0x5460c2 = _0x998f21[_0xe91751]_0x998f21[_0xe91751] = _0x998f21[_0xe50218]_0x998f21[_0xe50218] = _0x5460c2_0xe91751 = 0x0
_0xe50218 = 0x0
_0x411bcc = ''
for _0xd4adc1 in range(len(_0x2bb54a)):_0xe91751 = (_0xe91751 + 0x1) % 0x100_0xe50218 = (_0xe50218 + _0x998f21[_0xe91751]) % 0x100_0x5460c2 = _0x998f21[_0xe91751]_0x998f21[_0xe91751] = _0x998f21[_0xe50218]_0x998f21[_0xe50218] = _0x5460c2_0x411bcc += chr(ord(_0x2bb54a[_0xd4adc1]) ^ _0x998f21[(_0x998f21[_0xe91751] + _0x998f21[_0xe50218]) % 0x100])print(_0x411bcc)

结果:

我们可以看到,大佬代码的命名很特殊,导致代码很难分析。

其实,他使用了js文件的命名方法,这样分析js时,可拿着他的命名直接查找,利于js分析。

我在他的基础上,使用常规命名重写了代码:

resp = requests.get('https://www.sztjgold.com/files/article/html555/96/96158/42616795.html', headers=headers)
# print(resp.text)
base64_text = re.search('=(.*?);', resp.text, re.S).group(1).strip()
# print(base64_text)
base64_text = base64_text.split(',')# 找到密文,密文特点:最长的base64编码后的字符串
max_long = 0
max_text = None
for i in base64_text:if len(i) > max_long:max_long = len(i)max_text = i
# print(max_text)
s = re.sub("'", '', max_text)
print(s)# 找到解密需要传的第二个值
key = re.search("cctxt=.*?\D'.*?','(.*?)'\D;", resp.text, re.S).group(1).strip()
print(key)# 解码
s = base64.b64decode(s)temp = ''
# 遍历处理解码后的内容,s的类型是bytes
for i in s:# 转换为url编码,拼接temp += '%' + '%.2x' % i# print(temp)# 进行url解码,获取密文
ciphertext = unquote(temp)# 创建一个数字列表,0-255
num_list = [i for i in range(256)]x = 0
# 转换数字列表,达到需要的某种顺序
for i in range(256):# '2Xd^' 是js最后传的参数的第二个x = (x + num_list[i] + ord(key[i % len(key)])) % 256y = num_list[i]num_list[i] = num_list[x]num_list[x] = yprint("#"*20)
print(num_list)a = 0
b = 0
content = ''
# 密文解密
for i in range(len(ciphertext)):a = (a + 1) % 256b = (b + num_list[a]) % 256c = num_list[a]num_list[a] = num_list[b]num_list[b] = ccontent += chr(ord(ciphertext[i]) ^ num_list[(num_list[a] + num_list[b]) % 256])print('*'*20)
print(content)

效果:

很清晰的可以看见几个关键之处:

解密的key是用来使一个0-255的列表排列达到某种顺序

排序完后的列表,才能用来解开密文。

最后,重点来了,我们按照大佬的文件分析一下js

在一开始,在图片中,有个问题写着。

这个在吾爱里,刚好有大佬提到。

进入这个方法:

我们看看这个密文在哪被使用了:

继续往下走:

这里做的是直接对获取的html页面加以处理,不包含链接生成,因为它不具备难度,就不详述了。

记录一下js的破解吧。

--------------2019/12/27------------

勤奋使我更新:

完整版代码:

import reimport requests
import base64
import os
import re
from urllib.parse import unquote# 原文链接
url = 'https://www.sztjgold.com/chapter.html?1#mybookid=83751&bookid=96158&chapterid=42616797'# 关键数据参数
mybookid = re.search('mybookid=(\d+)', url).group(1).strip()
bookid = re.search('&bookid=(\d+)', url).group(1).strip()
chapterid = re.search('chapterid=(\d+)$', url).group(1).strip()
print('参数:')
print(mybookid, bookid, chapterid)# 就是那个js里看起来很麻烦的,
# var Protocol = window.location.protocol.split(':')[0];
# var ymurl=Protocol + "://"+window.location.host;
ymurl = 'https://www.sztjgold.com'# 向下取整在python里就是取整
xid = str(int(bookid) // 1000)
# 构造链接
url_get_data = ymurl + '/files/article/html555/'+xid+'/'+bookid+'/'+chapterid+'.html'headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',# 'Referer': url,
}# 下面就没变了
resp = requests.get(url_get_data, headers=headers)
# print(resp.text)
base64_text = re.search('=(.*?);', resp.text, re.S).group(1).strip()
# print(base64_text)
base64_text = base64_text.split(',')# 找到密文,密文特点:最长的base64编码后的字符串
max_long = 0
max_text = None
for i in base64_text:if len(i) > max_long:max_long = len(i)max_text = i
# print(max_text)
s = re.sub("'", '', max_text)
# 编码且未解密的内容
print('编码且未解密的内容:')
print(s)# 找到解密需要传的第二个值
key = re.search("cctxt=.*?\D'.*?','(.*?)'\D;", resp.text, re.S).group(1).strip()
print('用来重排数字列表的key:')
print(key)# 解码
s = base64.b64decode(s)temp = ''
# 遍历处理解码后的内容,s的类型是bytes
for i in s:# 转换url编码,拼接temp += '%' + '%.2x' % i# print(temp)
print('解码被转化为URL编码的内容(解base64编码):')
print(temp)
# 密文
ciphertext = unquote(temp)
print('解码后的内容(解url编码):')
print(ciphertext)# 创建一个数字列表,0-255
num_list = [i for i in range(256)]x = 0
# 转换数字列表,达到需要的某种顺序
for i in range(256):# '2Xd^' 是js最后传的参数的第二个x = (x + num_list[i] + ord(key[i % len(key)])) % 256y = num_list[i]num_list[i] = num_list[x]num_list[x] = yprint('根据key重组后的列表:')
print(num_list)
#
a = 0
b = 0
content = ''
# 密文解密
for i in range(len(ciphertext)):a = (a + 1) % 256b = (b + num_list[a]) % 256c = num_list[a]num_list[a] = num_list[b]num_list[b] = ccontent += chr(ord(ciphertext[i]) ^ num_list[(num_list[a] + num_list[b]) % 256])print('明文:')
print(content)# s = """
# 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wpXCvTUNCkliHnRTMMO4UFTDtwMHflDDjwEwwrXDscKXw4/ChMOW5bys5ras5LiE55W45b+N6YKj5YWu5LmT5rGO77215Lqj5biC5aaG5Lq877yc5ZON5aaz6LyW5piX562A5LuI5q6y6Ly/5Lu85a6K5b+C5aWv44K5w5Vkw4wrwrg+NsK3Lh5Zw7wKw6zCn2F1KGFvw6rDojDCksKoMhzCosKgN8KvwrpeFcK7FuKDveWTqu+/vuaIheiug+S9lOiFv+Wuleechei2huS5qO+9luS9neWKg+S4ueadseazpu+/uuKDqcOrw5jCoXPDgXTCmMKDD0PCgnnCqm46w5jCisKdA8OZBsKRairDogEMwrxYLcKPbnVvMsKS5ZCo5aaq5o6C55yj5b6P5rWr5Lmg55qH6b2C5a6t77+15o6N552H6K+06YKx772A4oOY5om85ZOM5ZWS5bG55aah5LiV5LiV5Lix6YCI5rKL5p6g77+/5Lq36KaY5Lqh5Li46IWn5rCD6YKf5b6u5ouD6Lq25Lup5rKv77+t5Y6n5aeh77yw5L2H6Kar5byb5Y695Y+F5Lue5LuY5Za95bCG5aWR5bKn6IG56K265b6o5Yu+6ImR6bim5Li477y65bK05L206L+B5pmU5ZSd77+/5Lq95puF6Iao5a+y55626LWR5puG5Lq25Lin772D4oCuw7jChMKWHsKiwobCsDfDk8O+wpXDpcK9cz18w6fCnALDpcKgXTDDpGnDmsOwwpLCmWkVwpLCrVzCv8O34oCC6L67wrvDgsK/w6PDhm3ig55OBsORDV8Mw4tWwotTA2EzwqLCjynDlSzCsytGwr3Ch8Otw4jDg8OEwptwLhYow5DDtm3CoeW+gua0huS7peWThOWulei+gOivouaHluS/oeS5r++9q+iygOS+teWQi+Wmheiuneeat+S6guaesOeCuumAseeSnOWUl+OBjBI/UsKOXhLCui7DiiTDt3DDocKEw4vDjsKJwr5zw5QHwqUjAABzw5V0wobDoMK1w7djw64gw4zoiZbpurTkub7pgonku57kvIvpqYTmnInphY3nmr/vvJjog67mmZHku4boiqvkurDlkbnvvYvpmYTlq6DorqfllJvlsLLlp5Llto3ljovkuafoiZ/pubvkuLDvvYbnnIzmnoLnnpvnmIfkua7lpKLl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
# """
#
# # 解码
# s = base64.b64decode(s)
#
# temp = ''
#
# for i in s:
#     temp += '%' + '%.2x' % i
#     # print(temp)
#
# _0x2bb54a = unquote(temp)
# # print(_0x2bb54a)
# _0x998f21 = [i for i in range(256)]
#
# _0xe50218 = 0
#
# for _0xe91751 in range(0x100):
#     _0xe50218 = (_0xe50218 + _0x998f21[_0xe91751] + ord('&f2F'[_0xe91751 % len('&f2F')])) % 0x100
#     _0x5460c2 = _0x998f21[_0xe91751]
#     _0x998f21[_0xe91751] = _0x998f21[_0xe50218]
#     _0x998f21[_0xe50218] = _0x5460c2
#
# _0xe91751 = 0x0
# _0xe50218 = 0x0
# _0x411bcc = ''
# for _0xd4adc1 in range(len(_0x2bb54a)):
#     _0xe91751 = (_0xe91751 + 0x1) % 0x100
#     _0xe50218 = (_0xe50218 + _0x998f21[_0xe91751]) % 0x100
#     _0x5460c2 = _0x998f21[_0xe91751]
#     _0x998f21[_0xe91751] = _0x998f21[_0xe50218]
#     _0x998f21[_0xe50218] = _0x5460c2
#     _0x411bcc += chr(ord(_0x2bb54a[_0xd4adc1]) ^ _0x998f21[(_0x998f21[_0xe91751] + _0x998f21[_0xe50218]) % 0x100])
#
# print(_0x411bcc)

直接改原文链接就可以抓不同章节了,前面说的生成链接也补齐了。

结果:

就酱,算结束了。

某某文学网站小说爬虫相关推荐

  1. python 小说 小说_python潇湘书院网站小说爬虫

    很久没有写爬虫了,最近接到一个抓取小说的项目顺便做此纪录练练手,之后工作中可能也会有部分场景要用到爬虫,爬取竞争对手进行数据分析什么的. 目标网站:潇湘书院 环境准备: python3 request ...

  2. 爬空气质量MySQL_爬虫:利用selenium采集某某环境网站的空气质量数据

    前言:在上一篇文章中,我们介绍了在http://PM2.5.in这个网站采集空气质量的数据,本篇文章是对其产生的一些问题的另一种解决方案,提供更加权威的数据采集. 技术框架:selenium.json ...

  3. python3多线程爬虫小说_python3+beautifulSoup4.6抓取某网站小说(四)多线程抓取

    上一篇多文章,是二级目录,根目录"小说",二级目录"作品名称",之后就是小说文件. 本篇改造了部分代码,将目录设置为根目录->作者目录->作品目录- ...

  4. 小说网站竟然没有下载功能?跟小姐姐学会这个python小说爬虫,把全文小说带回家!

    hello大家好,我是你们的可爱丸,不知道你们有没有遇到过这种情况: 自己喜欢的小说竟然只能看不能下载??? 作为一个python学习者,这种情况当然不能忍,那么今天我就教大家用python写一个小说 ...

  5. C#最基本的小说爬虫

    新手学习C#,自己折腾弄了个简单的小说爬虫,实现了把小说内容爬下来写入txt,还只能爬指定网站. 第一次搞爬虫,涉及到了网络协议,正则表达式,弄得手忙脚乱跑起来效率还差劲,慢慢改吧. 爬的目标:htt ...

  6. Python小说爬虫

    今天做的练习是在网站上爬虫某一部小说,并将其存入到文档中~~ 首先,按照上一次爬虫的步骤,获取到该小说目录页的url url="https://www.kanunu8.com/book2/1 ...

  7. 简单 python 小说爬虫 ultimate

    简单 python 小说爬虫 想爬就爬 带txt配置文件 day01(半成品) 划掉 - day02(成品) 书名 史上第一剑修 笔趣阁 url代码里找 ####################### ...

  8. java并发小说爬虫,多站点搜索下载,并实现Android客户端开发

    小说爬虫真的很简单,但要能优雅地使用却很麻烦.下面让我来诉说一下这几天的肝路历程.整个流程很完整,但不会很深入,主要是讲思路,给想要写类似功能的同学踩点坑,有什么细节问题直接评论就好. 文章目录 明确 ...

  9. python3爬小说_python3小说爬虫

    作为一个很喜欢看书的人,有时候在网页上看小说,会被数不胜数的广告弄的很烦,刚好最近在研究python,就自己写了一个小说爬虫,并用pyqt做了图形界面. 下面介绍一下主要思路,不过就不开源了,因为我的 ...

最新文章

  1. redhat5.5安装oracle11g的补丁包,在64位redhat5.5上面安装oracle 11g
  2. Java回调函数的理解
  3. linux redis经常自动关闭,Linux开启关闭redis
  4. hdu4515 小模拟
  5. “伪基站”任意冒用手机号短信诈骗
  6. 习题6-4 使用函数输出指定范围内的Fibonacci数 (20 分)
  7. matlab 多 带阻,matlab程序之——滤波器(带通-带阻
  8. 十八般武艺玩转GaussDB(DWS)性能调优:路径干预
  9. node.js中获取请求当前页的前一页URL地址
  10. mysql 5.7.19 rpm下载_centos6.8 mysql5.7 rpm安装与完全卸载
  11. android按钮对齐方式,表格行中三个按钮的对齐方式Android
  12. 强悍的 ubuntu —— 查看软件版本及安装位置
  13. 前端面试-面试官常见问题
  14. php cms系统 知乎,php cms 知乎
  15. 好有成就感。。。又编了一个扫雷
  16. Android Camera2 对焦梳理
  17. 改进YOLOv5系列:首发结合 RepLKNet 构建 最新 RepLKDeXt 结构|CVPR2022 超大卷积核, 越大越暴力,大到31x31, 涨点高效
  18. MATLAB GUI设计快速入门实例
  19. 区块链+医疗:隐藏的百亿级市场?
  20. 10款iOS高效开发必备的Objective-C类库(转)

热门文章

  1. MySQL的 validate_password插件 和 validate_password组件
  2. c语言字符指针分配内存,内存分配函数及使用注意事项,C语言内存分配函数完全攻略...
  3. JQuery-回到顶部
  4. 通达信标记符号_通达信指标中赋值符号“:”、“=”、“:=”区别?
  5. Suse12离线安装docker
  6. JOOQ学习笔记:分页、排序、字段重命名的写法
  7. tls协议 android 证书,Android TLS连接和自签名证书
  8. KSM(Kernel Samepage Merging) 剖析:Linux 内核中的内存去耦合
  9. 80年计算机专业硕士,多年多份多种多类的工作经验总结和分享,并提供技术咨询和培训、大学生志愿报考、专业学习及就业和面试指导
  10. Win10自动更新后,输入法故障问题