IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python爬虫登录加简单的js逆向 -> 正文阅读

[Python知识库]python爬虫登录加简单的js逆向

今天从群里看到一个朋友的求助,本着学习的心开始研究

?

?打开这个web.ext文件

?只有这样才能打开目标网页,这个好像一个爬虫作业,不是直接联网的那种网站

最后爬取的url是:http://127.0.0.1/8888

我也不懂是什么原理,继续

打开网页直接就是登录,打开F12登录一次试试,看看密码有没有加密

?

密码随便写的,只为了抓个包

?

?明文的密码,他还给了个密码本需要自己尝试密码是什么

?用上面抓到的包发送请求,找到真的账号密码

import requests


url = 'http://127.0.0.1:8888/login'
#抓包得到的url
headers={
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.9 Safari/537.36'
}
#自己ua,最简单的设置

with open('账号密码弱口令字典.txt','r',encoding='utf-8')as f:
#读取密码本
    for line in f:
        a = line.strip('\n').split(' ')
#去除每行最后的换行符,账号密码中间和有一个空格,用空格切割得到一个列表
#列表里两个元素,就是账号和密码
        username = a[0]
        password = a[1]
        params = {"username": username, "password": password}
#设置参数
        r = requests.post(url=url, headers=headers, json=params).json()
#发送请求
        print(username,password,r)
#打印账号密码和返回内容

?

?得到的结果显示indigo是账号,playhouse是密码,登录进去

?里面两个列表就是要爬取的内容,发现url后面带了个后缀

跟抓到的包正好对上了,开始写代码

import requests
#导入包

url = 'http://127.0.0.1:8888/login'
#登录的url,为了保存cookies
headers={
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.9 Safari/537.36'
}
#ua设置

params={"username":"indigo","password":"playhouse"}
#账号密码参数

session = requests.session()
#requests里的一个函数吧 不知道叫什么
#可以保存cookies,方便后面访问
r = session.post(url=url,headers=headers,json=params).json()
#获取cookies
agent_url = 'http://127.0.0.1:8888/admin/agent-list'
#放贷人员的url

res = session.get(url=agent_url,headers=headers)
datas = res.json()['data']
print(datas)

?返回的结果如下图

前不久刚看了一个js逆向的文章,乱七八糟带=,是base64加密

但是等号是在结尾,这个等号在开头

大胆猜测这个是base64加密并且把顺序颠倒了一下

data =datas[::-1]
# 重新排序,输出结果就是a = '1234'
# b = a[::-1]
# print(b)
# 输出'4321'

?得到了等号在屁股的乱七八糟的东西,继续用base64解密

import base64
a=base64.b64decode(data.encode('utf-8'))

?好像真的蒙对了,返回了有点接近的内容

看第一行我选中的地方有个name,后面不远有个phone,大概在中间位置

而且好像还有电话号码似的数字

感觉要胜利了,可是发现其他那些%22啊什么的不认识,问了问群里大佬

说是url编码,找了半天解码方式,倒是也简单

from urllib.parse import unquote
b = unquote(a.decode())

?这一步结束后打印了一下结果,让人开心

这样后面就是转一下json,然后再从里面取值了,最后写入csv

后面的步骤过于基础,这里不细说了

这样就获得了贷款人员的内容

放款记录跟着个是一样的

个人感觉大部分一个网站的同一种内容不会写两种方法

下面是完整代码?

?

import requests
import base64
from urllib.parse import unquote
import csv
import json

url = 'http://127.0.0.1:8888/login'
headers={
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.9 Safari/537.36'
}


params={"username":"indigo","password":"playhouse"}


session = requests.session()
r = session.post(url=url,headers=headers,json=params).json()
#获取cookies
agent_url = 'http://127.0.0.1:8888/admin/agent-list'
#放贷人员的url
loans_url = 'http://127.0.0.1:8888/admin/loans-list'
#放贷记录的url
res = session.get(url=agent_url,headers=headers)
datas = res.json()['data']
#请求回的内容是一串倒叙的base64加密

data =datas[::-1]
# 重新排序

a=base64.b64decode(data.encode('utf-8'))

#解密
b = unquote(a.decode())

#解密后得到的内容是16进制的再次转换
c = json.loads(b)
# 转成json格式
head = ('name','no','phone')
# 设置csv文件头
with open('放贷人员.csv','a',encoding='utf-8',newline='')as f:
    writer = csv.DictWriter(f,fieldnames=head)
    writer.writeheader()
    for i in c:
        writer.writerow(i)


res = session.get(url=loans_url,headers=headers)
datas = res.json()['data']

data =datas[::-1]

a=base64.b64decode(data.encode('utf-8'))
b = unquote(a.decode())
c = json.loads(b)


head = ('money','no')
with open('放贷记录.csv','a',encoding='utf-8',newline='')as f:
    writer = csv.DictWriter(f,fieldnames=head)
    writer.writeheader()
    for i in c:
        writer.writerow(i)
#

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-12-14 15:53:53  更:2021-12-14 15:55:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 4:48:48-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码