微信阅读,每天秒到羊毛1.8元;附青龙脚本python源码
文章目录
- 微信阅读,每天秒到羊毛1.8元;附青龙脚本python源码
- 写在前面
- sever酱推送教程
- 一、抓包教程
- (1)、电脑抓包软件使用说明
- 1.如下图,设置好抓包软件
- 2.电脑微信打开[链接](http://h5.rd0114151.shop/pipa_read?upuid=1879086),打开后如下图
- 3.点击开始阅读,即可在抓包软件上找到***.shop**的数据包,复制cookie填到青龙面板或者自动提交
- 二、源码使用说明
- (1)、复制源码到青龙面板,新建一个python文件
- (2)、设置自动任务
- (3)、设置环境变量
- 三、免费托管自动运行任务
- 四、python源码
写在前面
前几天看了青龙羊毛阅读js脚本,但是已经失效了;于是随便找了个阅读平台试试水,大概和之前js脚本功能相同(还是借助了万能的chatgpt,不得不说嘎嘎好用).
实现功能:自动阅读,自动提现,检测文章自动推送到微信阅读
自动阅读平台注册链接
http://h5.rd0114151.shop/pipa_read?upuid=1879086
实现效果如图
sever酱推送教程
1.进入sever酱官网SendKey (ftqq.com)
2.微信扫码登录
3.点击api,复制key
没有服务器可以跳到 三、免费托管自动运行任务
抓包软件下载地址:https://wuchen.lanzoue.com/i9LZI1rqpbvc
一、抓包教程
(1)、电脑抓包软件使用说明
1.如下图,设置好抓包软件
2.电脑微信打开链接,打开后如下图
3.点击开始阅读,即可在抓包软件上找到***.shop**的数据包,复制cookie填到青龙面板或者自动提交
二、源码使用说明
(1)、复制源码到青龙面板,新建一个python文件
(2)、设置自动任务
(3)、设置环境变量
格式:sever酱key###昵称###抓到的cookie
三、免费托管自动运行任务
通过链接提交到服务器自动运行
提交格式:https://4g998964r2.uicp.fun/yuedu/severJ=[sever酱key]&cookie=[抓到的cookie]&nickname=[你的昵称]
例子:https://4g998964r2.uicp.fun/yuedu/severJ=SCT192797TC7gNfT6wAby49EAcKB1vSg11&cookie=PHPSESSID=ua157146rt6gujl32o7bccqn0p&nickname=无尘
四、python源码
import requests
import json
from urllib.parse import unquote, urlparse, parse_qs
import time
import random
import re
import os
# 定义cookie列表
cookies_list =os.getenv("wxyd1").split("&")
cookies_list = list(filter(None, cookies_list))
print(cookies_list)
global_url = "h5266995.kpy97633.shop"
def url_get():
url = "https://h5.127-server.xyz/entry/lg"
headers = {
'Accept': '*/*',
'Host': 'h5.127-server.xyz',
'Accept-Language': 'zh-CN,zh;q=0.9',
'Connection': 'keep-alive',
'Origin': 'https://dgsso-803-2-1319437009.cos.ap-nanjing.myqcloud.com',
'Referer': 'https://dgsso-803-2-1319437009.cos.ap-nanjing.myqcloud.com/',
'Sec-Fetch-Dest': 'empty',
'Sec-Fetch-Mode': 'cors',
'Sec-Fetch-Site': 'cross-site',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36 NetType/WIFI MicroMessenger/7.0.20.1781(0x6700143B) WindowsWechat(0x63090819) XWEB/8555 Flue'
}
try:
with requests.get(url, headers=headers, verify=False) as response:
response.raise_for_status() # 如果响应状态码不是200,就主动抛出异常
json_data = response.json() # 直接调用response对象的json()方法
jump_url = json_data.get('jump') # 使用get()方法更安全,如果'jump'不存在则返回None
jump_url = unquote(jump_url) # 对URL进行解码
print(jump_url)
pattern = r'http://([^/]+)/'
match = re.search(pattern, jump_url)
if match:
url_part = match.group(1)
print(url_part) # 输出: h5267762.kpy97633.shop
return url_part
else:
print("没有找到匹配的URL部分")
return None
except requests.RequestException as e:
print(f"An error occurred while making the request: {e}") # 使用日志代替print
return None
except (ValueError, json.JSONDecodeError):
print("Failed to decode JSON response.") # 使用日志代替print
return None
def random_number_str():
# 生成随机字符串
random_str = ''.join(random.choices('0123456789', k=17))
# 将随机字符串转换为数字,并确保它在给定数值的范围内
random_number = round(float('0.' + random_str), 17)
# 格式化生成的随机数与给定数值相同格式的字符串
random_number_str = str(random_number)
print(random_number_str)
return random_number_str
def getreadinglink():
url = f"http://{global_url}/read_task/gru"
headers = {
"Host": global_url,
"Connection": "keep-alive",
"Accept": "*/*",
"User-Agent": "Mozilla/5.0 (Linux; Android 10; Redmi K20 Pro Build/QKQ1.190825.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/116.0.0.0 Mobile Safari/537.36 XWEB/1160055 MMWEBSDK/20231002 MMWEBID/9181 MicroMessenger/8.0.43.2480(0x28002B51) WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64",
"X-Requested-With": "XMLHttpRequest",
"Accept-Encoding": "gzip, deflate",
"Accept-Language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7",
"Cookie": global_vCookie
}
try:
with requests.get(url, headers=headers) as response:
response.raise_for_status() # 如果响应状态码不是200,就主动抛出异常
json_data = response.json() # 直接调用response对象的json()方法
jump_url = json_data.get('jump') # 使用get()方法更安全,如果'jump'不存在则返回None
if jump_url:
decoded_url = unquote(jump_url) # 对URL进行解码
# print(f"Decoded URL: {decoded_url}") # 使用日志代替print
# 解析URL
parsed_url = urlparse(decoded_url)
# 解析查询参数
query_params = parse_qs(parsed_url.query)
# 获取参数值
iu_param = query_params.get('iu', None)
if iu_param:
# print(f"Parameter 'iu': {iu_param[0]}") # 使用日志代替print
return decoded_url, iu_param[0]
else:
print("Parameter 'iu' not found.") # 使用日志代替print
return None
else:
print("No 'jump' field found in the response.") # 使用日志代替print
return None
except requests.RequestException as e:
print(f"An error occurred while making the request: {e}") # 使用日志代替print
return None
except (ValueError, json.JSONDecodeError):
print("Failed to decode JSON response.") # 使用日志代替print
return None
def firstreading(host, iu_param):
url = f"http://{host}/read_task/do_read?iu={iu_param}&type=7&pageshow&r={random_number_str()}"
print(url)
headers = {
"Host": host,
"Connection": "keep-alive",
"User-Agent": "Mozilla/5.0 (Linux; Android 10; Redmi K20 Pro Build/QKQ1.190825.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/116.0.0.0 Mobile Safari/537.36 XWEB/1160055 MMWEBSDK/20231002 MMWEBID/9181 MicroMessenger/8.0.43.2480(0x28002B51) WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64",
"X-Requested-With": "XMLHttpRequest",
"Accept": "*/*",
"Referer": f"http://{host}/read_task/read?iu={iu_param}&type=7",
"Accept-Encoding": "gzip, deflate",
"Accept-Language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7",
"Cookie": global_vCookie
}
try:
with requests.get(url, headers=headers) as response:
response.raise_for_status() # 如果响应状态码不是200,就主动抛出异常
print(response.text)
json_data = response.json() # 直接调用response对象的json()方法
jkey = json_data.get('jkey')
url = json_data.get('url')
if jkey and url: # 检查两个值是否都存在
url = unquote(url) # 对URL进行解码
return jkey, url # 返回jkey和url的元组
else:
print("No 'jump' field found in the response.")
return None # 返回None或可以考虑抛出异常表示错误
except requests.RequestException as e:
print(f"An error occurred while making the request: {e}")
return None # 返回None或可以考虑抛出异常表示错误
except (ValueError, json.JSONDecodeError):
print("Failed to decode JSON response.")
return None # 返回None或可以考虑抛出异常表示错误
def reading(host, iu_param, jkey):
url = f"http://{host}/read_task/do_read?iu={iu_param}&type=7&pageshow&r={random_number_str()}&jkey={jkey}"
headers = {
"Host": host,
"Connection": "keep-alive",
"User-Agent": "Mozilla/5.0 (Linux; Android 10; Redmi K20 Pro Build/QKQ1.190825.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/116.0.0.0 Mobile Safari/537.36 XWEB/1160055 MMWEBSDK/20231002 MMWEBID/9181 MicroMessenger/8.0.43.2480(0x28002B51) WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64",
"X-Requested-With": "XMLHttpRequest",
"Accept": "*/*",
"Referer": f"http://{host}/read_task/read?iu={iu_param}&type=7",
"Accept-Encoding": "gzip, deflate",
"Accept-Language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7",
"Cookie": global_vCookie
}
try:
with requests.get(url, headers=headers) as response:
response.raise_for_status() # 如果响应状态码不是200,就主动抛出异常
print(response.text)
json_data = response.json() # 直接调用response对象的json()方法
jkey = json_data.get('jkey')
url = json_data.get('url')
if jkey and url: # 检查两个值是否都存在
url = unquote(url) # 对URL进行解码
return jkey, url # 返回jkey和url的元组
else:
print(f"提交失败:{response.text}")
return None # 返回None或可以考虑抛出异常表示错误
except requests.RequestException as e:
print(f"An error occurred while making the request: {e}")
return None # 返回None或可以考虑抛出异常表示错误
except (ValueError, json.JSONDecodeError):
print("Failed to decode JSON response.")
return None # 返回None或可以考虑抛出异常表示错误
def Loadread(host,iu_param):
url = f"http://{host}/read_task/read?iu={iu_param}&type=7"
headers = {
"Host": host,
"Connection": "keep-alive",
"User-Agent": "Mozilla/5.0 (Linux; Android 10; Redmi K20 Pro Build/QKQ1.190825.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/116.0.0.0 Mobile Safari/537.36 XWEB/1160055 MMWEBSDK/20231002 MMWEBID/9181 MicroMessenger/8.0.43.2480(0x28002B51) WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64",
"X-Requested-With": "XMLHttpRequest",
"Accept": "*/*",
"Referer": f"http://{host}/read_task/read?iu={iu_param}&type=7",
"Accept-Encoding": "gzip, deflate",
"Accept-Language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7",
"Cookie": global_vCookie
}
try:
with requests.get(url, headers=headers) as response:
response.raise_for_status() # 如果响应状态码不是200,就主动抛出异常
return response.text
except requests.RequestException as e:
print(f"An error occurred while making the request: {e}")
return None # 返回None或可以考虑抛出异常表示错误
except (ValueError, json.JSONDecodeError):
print("Failed to decode JSON response.")
return None # 返回None或可以考虑抛出异常表示错误
def withdraw(money):
url = f"http://{global_url}/withdrawal/submit_withdraw"
headers = {
"Host": global_url,
"Connection": "keep-alive",
"Content-Length": "23",
"Accept": "*/*",
"X-Requested-With": "XMLHttpRequest",
"User-Agent": "Mozilla/5.0 (Linux; Android 10; Redmi K20 Pro Build/QKQ1.190825.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/116.0.0.0 Mobile Safari/537.36 XWEB/1160055 MMWEBSDK/20231002 MMWEBID/9181 MicroMessenger/8.0.43.2480(0x28002B51) WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64",
"Content-Type": "application/x-www-form-urlencoded",
"Origin": global_url,
"Referer": f"http://{global_url}/withdrawal",
"Accept-Encoding": "gzip, deflate",
"Accept-Language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7",
"Cookie": global_vCookie
}
data = {
"channel": "wechat",
"money": money
}
print(data)
try:
with requests.post(url, headers=headers, data=data) as response:
response.raise_for_status() # 如果响应状态码不是200,就主动抛出异常
return response.text
except requests.RequestException as e:
print(f"An error occurred while making the request: {e}")
return None # 返回None或可以考虑抛出异常表示错误
except (ValueError, json.JSONDecodeError):
print("Failed to decode JSON response.")
return None # 返回None或可以考虑抛出异常表示错误
def user_money():
url = f"http://{global_url}/pipa_read/user/"
headers = {
"Host": global_url,
'Connection': 'keep-alive',
'Upgrade-Insecure-Requests': '1',
'User-Agent': 'Mozilla/5.0 (Linux; Android 10; Redmi K20 Pro Build/QKQ1.190825.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/116.0.0.0 Mobile Safari/537.36 XWEB/1160055 MMWEBSDK/20231002 MMWEBID/9181 MicroMessenger/8.0.43.2480(0x28002B51) WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/wxpic,image/tpg,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
'X-Requested-With': 'com.tencent.mm',
'Accept-Encoding': 'gzip, deflate',
'Accept-Language': 'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7',
"Cookie": global_vCookie
}
try:
with requests.get(url, headers=headers) as response:
response.raise_for_status() # 如果响应状态码不是200,就主动抛出异常
match = re.search(r'余额:(\d+(\.\d+)?) 元', response.text)
if match:
balance = str(match.group(1))
print(f"余额:{balance}") # 输出:0.03
return balance
else:
return None
except requests.RequestException as e:
print(f"An error occurred while making the request: {e}")
return None # 返回None或可以考虑抛出异常表示错误
except (ValueError, json.JSONDecodeError):
print("Failed to decode JSON response.")
return None # 返回None或可以考虑抛出异常表示错误
def jiance():
random_number = random.randint(7, 50)
print(f"延迟{random_number}秒")
time.sleep(random_number)
result = getreadinglink()
if result:
decoded_url, iu_param = result
print("解码后链接:", decoded_url)
print("获取到 'iu':", iu_param)
parsed_url = urlparse(decoded_url)
# 提取主机名
host = parsed_url.netloc
result = firstreading(host, iu_param)
if result:
jkey, url = result
return jkey, url
else:
print("首次获取jkey失败")
return None
else:
print("获取阅读链接失败!")
return None
def serverJ(title, content, PUSH_KEY):
data = {"text": title, "desp": content.replace("\n", "\n\n")}
url = f'https://sc.ftqq.com/{PUSH_KEY}.send'
response = requests.post(url, data=data).json()
if response.get("errno") == 0 or response.get("code") == 0:
print("serverJ 推送成功!")
else:
print(f'serverJ 推送失败!错误码:{response["message"]}')
def finish(host,iu_param):
url = f"http://{host}/read_task/finish?iu={iu_param}&type=7&type=7&upuid=&_t=799888"
headers = {
"Host": host,
"Connection": "keep-alive",
"User-Agent": "Mozilla/5.0 (Linux; Android 10; Redmi K20 Pro Build/QKQ1.190825.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/116.0.0.0 Mobile Safari/537.36 XWEB/1160055 MMWEBSDK/20231002 MMWEBID/9181 MicroMessenger/8.0.43.2480(0x28002B51) WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64",
"X-Requested-With": "XMLHttpRequest",
"Accept": "*/*",
"Referer": f"http://{host}/read_task/read?iu={iu_param}&type=7",
"Accept-Encoding": "gzip, deflate",
"Accept-Language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7",
"Cookie": global_vCookie
}
try:
with requests.get(url, headers=headers) as response:
response.raise_for_status() # 如果响应状态码不是200,就主动抛出异常
return response.text
except requests.RequestException as e:
print(f"An error occurred while making the request: {e}")
return None # 返回None或可以考虑抛出异常表示错误
except (ValueError, json.JSONDecodeError):
print("Failed to decode JSON response.")
return None # 返回None或可以考虑抛出异常表示错误
# 循环遍历cookie列表,对每个cookie发起请求
for cookie in cookies_list:
cishu = 0
print(cookie)
PUSH_KEY,nickname, global_vCookie = cookie.split("###", 2) # 使用###作为分隔符,并且只分割一次
# 打印响应内容
print(f"当前账号:{nickname},当前账号cookie:{global_vCookie},当前账号PUSH_KEY:{PUSH_KEY}")
content = f"当前账号:{nickname},当前账号cookie:{global_vCookie},当前账号PUSH_KEY:{PUSH_KEY}"
url = url_get()
if url:
global_url = url
print("获取新的host地址成功:", url)
else:
url = global_url
print("获取新的host地址失败,使用默认host", url)
result = getreadinglink()
if result:
decoded_url, iu_param = result
print("解码后链接:", decoded_url)
print("获取到 'iu':", iu_param)
parsed_url = urlparse(decoded_url)
# 提取主机名
host = parsed_url.netloc
result = firstreading(host, iu_param)
if result:
jkey, url = result
print("首次获取jkey:", jkey)
if "chksm" in url:
print("字符串中包含'chksm',判断为检测文章不阅读")
content = content + "字符串中包含'chksm',判断为检测文章无法阅读" + '\n\n' + "请点击链接阅读一轮篇文章:http://h5.rd0114151.shop/pipa_read?upuid=1879086"
result=finish(host,iu_param)
print(result)
else:
print("字符串中不包含'chksm',正常提交")
Loadread(host,iu_param)
time.sleep(2)
for i in range(1, 40):
# 延迟
random_number = random.randint(7, 50)
print(f"延迟{random_number}秒")
time.sleep(random_number)
result = reading(host, iu_param, jkey)
if result:
jkey, url = result
print("循环获取jkey:", jkey)
if "chksm" in url:
print("字符串中包含'chksm',判断为检测文章不阅读")
content = content + "字符串中包含'chksm',判断为检测文章无法阅读" + '\n\n' + "请点击链接阅读一轮篇文章:http://h5.rd0114151.shop/pipa_read?upuid=1879086"
result=finish(host,iu_param)
print(result)
break # 跳出循环
else:
cishu = cishu + 1
print("字符串中不包含'chksm',正常提交")
Loadread(host,iu_param)
time.sleep(2)
else:
break # 跳出循环
else:
print("首次获取jkey失败")
content = content + '\n\n' + f"阅读成功篇数:{cishu}"
money = user_money()
if money:
num_float = float(money)
if num_float < 0.3:
print(f"余额{num_float} 小于 0.3,不进行提现")
content = content + '\n\n' + f"余额{num_float} 小于 0.3,不进行提现"
serverJ("微信阅读", content,PUSH_KEY)
else:
print(f"{num_float} 大于等于 0.3")
result = withdraw(str(num_float * 100))
print(f"提现结果:{result}")
content = content + '\n\n' + f"余额:{money}" + '\n\n' + f"提现结果:{result}"
serverJ("微信阅读", content,PUSH_KEY)
else:
print("获取余额失败!")
content = content + '\n\n' + "获取余额失败!"
serverJ("微信阅读", content,PUSH_KEY)
else:
print("获取阅读链接失败!")
content = content + '\n\n' + "获取阅读链接失败;cookie失效了宝贝,重新抓!!"
serverJ("微信阅读", content,PUSH_KEY)