weilai8游戏爬虫
#!/usr/bin/python
# -*- coding: UTF-8 -*-
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import os,csv
import re
import random
import time
import requests
from lxml import etreefrom urllib.parse import quote, unquotepage=98
sess = requests.Session()#创建一个session保持连接
agent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:108.0) Gecko/20100101 Firefox/108.0'#设置浏览头伪装成浏览器
headers = {'Accept': 'application/json, text/javascript, */*; q=0.01','Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',# 'Authorization': 'Bearer 8d9587cb442ea21ac8a7bb2a40fa1de8','Cache-Control': 'no-cache','Connection': 'keep-alive','Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8','Origin': 'https://weilai8.vip/','Pragma': 'no-cache','Referer': 'https://weilai8.vip/member/login.php','Sec-Fetch-Dest': 'empty','Sec-Fetch-Mode': 'cors','Sec-Fetch-Site': 'same-origin','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36 Edg/110.0.1587.63','X-Requested-With': 'XMLHttpRequest','sec-ch-ua': '"Chromium";v="110", "Not A(Brand";v="24", "Microsoft Edge";v="110"','sec-ch-ua-mobile': '?0','sec-ch-ua-platform': '"Windows"',
}M_email = "2944357972@qq.com"
M_pwd="123456"
data = {'M_pwd':M_pwd,'M_email':M_email,'add':""}url= "https://weilai8.vip/member/login.php?action=login&from=index.php"
#url='https://weiali8.vip'sess.post(url,data=data,headers=headers,allow_redirects=True)#re=sess.get('https://258yx.vip/member/index.php')def Purchase_goods(genkey=None, id=None):"""购买商品:param genkey::param id::return:"""# params = {# 'type': 'productinfo',# 'id': id,## }data={'no':1,'button':'立即购买','genkey':genkey,}url = f"https://weilai8.vip/buy.php?type=productinfo&id={id}"headers={'Referer':f'https://weilai8.vip/?type = productinfo&id={id}',}respone = sess.post(url,data=data,headers=headers)# print(respone.headers.get('Location'))# exit()# print(respone.text)print(respone.text)with open('js.txt', 'w') as f:f.write(respone.text)resut = open('js.txt', 'r')context = str(resut.read())js_url = context.split('=')js_url[1] = js_url[1].strip("'")locaion_url = f"https://weilai8.vip/{js_url[1]}={js_url[2]}=0"print(locaion_url)resut.close()respone = sess.get(locaion_url)print(respone.status_code)# locaion_url = f"https://weilai8.vip/member/unlogin.php?type=fahuo&id={id}&genkey={genkey}"# print(locaion_url)## respone = sess.get(locaion_url)# value = quote('立即购买')## data ={"no":1,"button":value,'genkey':genkey}# sess.post(url,data=data).text# fa_url=f'https://258yx.vip/member/unlogin.php?genkey={genkey}&address=0'## rspone=sess.get(fa_url)select = etree.HTML(respone.text)shop_name = select.xpath(r'//div[@class="col-md-9"]//p/text()')[0][4:]shop_msg = select.xpath(r'//div[@class="panel-body"]//textarea/text()')[0]if not os.path.exists('宅男小游戏'):os.mkdir('宅男小游戏')with open(os.path.join('宅男小游戏', '格斗小游戏.csv'), 'w', encoding='utf-8', newline='') as f:csv_write = csv.writer(f)csv_write.writerow(['游戏名称','下载地址'])with open(os.path.join('宅男小游戏', '格斗小游戏.csv'), 'a', encoding='utf-8', newline='') as f:csv_write = csv.writer(f)csv_write.writerow([shop_name, shop_msg])print(f'INFO游戏{shop_name}成功获取')for e in range(1, page + 1):params = {'type': 'product','id': '32','page': e,'M_id': "",'tag':""}url = f'https://weilai8.vip'page_dict = sess.get(url,params=params)select = etree.HTML(page_dict.text)game_urls = select.xpath(r'//div[@class="course-item"]//a/@href')url_list=[]for i in game_urls:if i not in url_list and re.search(r'productinfo',i):url_list.append(i)for i in url_list:game_url = url + igame_id = i.split('=')[-1]res = sess.get(game_url)print(game_url)gen = re.findall(r'genkey=(.\w+)',res.text)print(gen)select = etree.HTML(res.text)#genkey = select.xpath(r"//input[@name='genkey']/@value")[0]Purchase_goods(genkey=gen,id=game_id)相关文章:
weilai8游戏爬虫
#!/usr/bin/python # -*- coding: UTF-8 -*- #!/usr/bin/python # -*- coding: UTF-8 -*- import os,csv import re import random import time import requests from lxml import etreefrom urllib.parse import quote, unquotepage98 sess requests.Session()#创建一个sessi…...
【Java程序设计】【C00261】基于Springboot的休闲娱乐代理售票系统(有论文)
基于Springboot的休闲娱乐代理售票系统(有论文) 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的休闲娱乐代理售票系统 本系统分为系统功能模块、管理员功能模块以及用户功能模块。 系统功能模块:休闲娱乐代理…...
【Linux】学习-基础IO拓展篇
Linux基础IO拓展篇—详解文件系统 理解文件系统 在Linux基础IO篇中,我们站在用户的视角对文件进行了理解,主要是针对被打开的文件,那么有没有没有被打开的文件呢?当然有!今天我们换个视角,来站在系统的角…...
算法详解(力扣141——环形链表系列)
博主ID:代码小豪 文章目录 环形链表环形链表的性质分析快慢指针法指针的追及相遇问题 环形链表(2) 环形链表 先来看看环形链表的原题: 中间的部分叙述有点繁杂,简单来概括就是,假如有一个节点,…...
浅谈路由器交换结构
一、路由器技术概述 路由器(Router)是连接两个或多个网络的硬件设备,在网络间起网关的作用,是读取每一个数据包中的地址然后决定如何传送的专用智能性的网络设备。它能够理解不同的协议,例如某个局域网使用的以太网协议…...
Linux第51步_移植ST公司的linux内核第3步_添加修改设备树
1、设备树文件的路径 1)、创建linux中的设备树头文件 在“my_linux/linux-5.4.31/arch/arm/boot/dts/”目录中,以“stm32mp15xx-edx.dtsi”为蓝本,复制一份,并命名为 “stm32mp157d-atk.dtsi”,这就是我们开发板的设备树头文件。…...
【PyTorch】PyTorch中张量(Tensor)统计操作
PyTorch深度学习总结 第五章 PyTorch中张量(Tensor)统计操作 文章目录 PyTorch深度学习总结前言一、最值查找二、特殊值查询 前言 上文介绍了PyTorch中张量(Tensor)的计算操作,本文将介绍张量的统计操作。 一、最值查找 函数描述torch.max()找出张量中的最大值to…...
安卓游戏开发框架应用场景以及优劣分析
一、引言 在移动游戏开发领域,选择合适的开发框架是项目成功的关键因素之一。特别是对于安卓平台,由于其开放性和庞大的用户基础,不同的游戏开发框架应运而生,旨在帮助开发者高效地构建游戏应用。以下是一些流行的安卓游戏开发框架…...
单片机学习笔记---LCD1602
LCD1602介绍 LCD1602(Liquid Crystal Display)液晶显示屏是一种字符型液晶显示模块,可以显示ASCII码的标准字符和其它的一些内置特殊字符(比如日文的片假名),还可以有8个自定义字符 显示容量:…...
django中实现适配器模式
在Django中实现适配器模式(Adapter Pattern)涉及到创建一个适配器类,它允许不兼容的接口之间进行交互。适配器模式通常用于将一个类的接口转换为另一个客户端期望的接口。 一:实现例子 下面是一个简单的例子,演示如何…...
题记(42)--EXCEL排序
目录 一、题目内容 二、输入描述 三、输出描述 四、输入输出示例 五、完整C语言代码 一、题目内容 Excel可以对一组纪录按任意指定列排序。现请你编写程序实现类似功能。 对每个测试用例,首先输出1行“Case i:”,其中 i 是测试用例的编号&#…...
【学网攻】 第(28)节 -- OSPF虚链路
系列文章目录 目录 系列文章目录 文章目录 前言 一、什么是OSPF虚链路? 二、实验 1.引入 实验目标 实验背景 技术原理 实验步骤 实验设备 实验拓扑图 实验配置 扩展 实验拓扑图 实验配置 实验验证 文章目录 【学网攻】 第(1)节 -- 认识网络【学网攻…...
百面嵌入式专栏(面试题)驱动开发面试题汇总1.0
沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇我们将介绍驱动开发面试题 。 1、Linux驱动程序的功能是什么? 对设备初始化和释放。进行内核与硬件的数据交互。检测和处理设备出现的错误。2、内核程序中申请内存使用什么函数? 答案:kmalloc()、kzalloc()、vm…...
Starknet 的 JavaScript 库:Starknet.js、get-starknet和starknet-react
文章目录 Starknet 的 JavaScript 库Starknet.jsget-starknetstarknet-reactStarknet 的 JavaScript 库Starknet.js 官方:https://www.starknetjs.com/ Starknet.js 是一个与 Starknet 交互的 JavaScript 库,通常以脚本或去中心化形式进行交互应用程序。 Starknet.js 的灵感…...
debian11 安装 k8s,containerd ,阿里云镜像(已成功)
1. 环境准备 系统要求:至少 2GB RAM(建议 4GB 或更多),网络连接。 节点准备:至少 3 台机器,1 台作为 Master 节点,2 台作为 Worker 节点。 安装sudo apt update apt install sudo设置主机名&a…...
Spring Task定时任务
目录 1、介绍 2、cron表达式 2.1、在线生成器 2.2、通配符 3、代码示例 3.1、使用步骤 3.2、 代码开发 3.3、测试 🍃作者介绍:双非本科大三网络工程专业在读,阿里云专家博主,专注于Java领域学习,擅长web应用开发…...
【设计模式】23中设计模式笔记
设计模式分类 模板方法模式 核心就是设计一个部分抽象类。 这个类具有少量具体的方法,和大量抽象的方法,具体的方法是为外界提供服务的点,具体方法中定义了抽象方法的执行序列 装饰器模式 现在有一个对象A,希望A的a方法被修饰 …...
类加载过程介绍
一、类的生命周期 类被加载到jvm虚拟机内存开始,到卸载出内存为止,他的生命周期可以分为:加载->验证->准备->解析->初始化->使用->卸载。 其中验证、准备、解析统一称为链接阶段 1、加载 将类的字节码载入方法区中…...
pytorch创建模型方式
1.继承自nn.Module的方式 from torch import nn import torch.nn.functional as F 继承自nn.Moduleclass LModel(nn.Module):def __init__(self):super().__init__()self.L1 nn.Linear(10,10)self.L2 nn.Linear(10,64)self.L3 nn.Linear(64,10)self.L4 nn.Linear(10,5)se…...
MySQL 基础知识(五)之数据增删改
目录 1 插入数据 2 删除数据 3 更改数据 创建 goods 表 drop table if exists goods; create table goods ( id int(10) primary key auto_increment, name varchar(14) unique, stockdate date )charsetutf8; 1 插入数据 当要插入的数据为日期/时间类型时,如果…...
ssc377d修改flash分区大小
1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...
java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别
UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...
渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止
<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...
解锁数据库简洁之道:FastAPI与SQLModel实战指南
在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...
【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
条件运算符
C中的三目运算符(也称条件运算符,英文:ternary operator)是一种简洁的条件选择语句,语法如下: 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true,则整个表达式的结果为“表达式1”…...
在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module
1、为什么要修改 CONNECT 报文? 多租户隔离:自动为接入设备追加租户前缀,后端按 ClientID 拆分队列。零代码鉴权:将入站用户名替换为 OAuth Access-Token,后端 Broker 统一校验。灰度发布:根据 IP/地理位写…...
今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存
文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...
C#中的CLR属性、依赖属性与附加属性
CLR属性的主要特征 封装性: 隐藏字段的实现细节 提供对字段的受控访问 访问控制: 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性: 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑: 可以…...
快速排序算法改进:随机快排-荷兰国旗划分详解
随机快速排序-荷兰国旗划分算法详解 一、基础知识回顾1.1 快速排序简介1.2 荷兰国旗问题 二、随机快排 - 荷兰国旗划分原理2.1 随机化枢轴选择2.2 荷兰国旗划分过程2.3 结合随机快排与荷兰国旗划分 三、代码实现3.1 Python实现3.2 Java实现3.3 C实现 四、性能分析4.1 时间复杂度…...
