爬虫篇-小程序后台数据获取【附源码】

article/2025/8/29 14:24:07

文章目录

  • 前言
  • 一、分析小程序及后台
  • 二、使用步骤
    • 1.引入库
    • 2.用代码构建一个模拟浏览器
    • 3.设置好需要请求的网址连接
    • 4.分析验证码
    • 5.模拟登陆
  • 总结


前言

  鉴于网上以及视频教材很多都是直接用cookie写到了headers中,这样验证是会过期的,我这里直接模拟浏览器请求。
  内部系统小程序后台爬虫应用,因此没有账号的可以学习思路,有账号的可以考虑实战爬虫。
  首先会分析整个小程序从一开始登陆页面请求分析到数据请求以及服务器相应内容做分析,确定参数形式,知道最后的获取数据。


一、分析小程序及后台

目标网址:http://travel.enn.cn/ssop/linzhi/admin/#/login
在这里插入图片描述
  从图上可知,本次需要先模拟登陆,并且需要验证码登陆,因此,我们按下F12,进入浏览器开发者工具,选择Network板块。
  然后重新刷新一下网页,这个时候我们会在开发者工具中得到后台的一些请求步骤,同时我们需要随便输入一个用户名和密码,以及随便一个验证码,我们需要查看登陆的时候前端浏览器会怎样发送数据到后台的,如图:
在这里插入图片描述
  到这里我们需要一条一条的分析,分析哪些是需要请求的链接,哪一条是验证码的链接。
经过分析:
  xxxx/login:是请求登陆的时候的网址
  xxxx/captcha.jpgxxxxx:这个是验证码的网址
到这里我们基本上就可以做模拟登陆了。


二、使用步骤

1.引入库

from re import T
import sys, urllib,datetime,urllib.request,urllib.parse,time,random,uuid,json
from http import cookiejar
from PIL import Image
from bs4 import BeautifulSoup

2.用代码构建一个模拟浏览器

cookie = cookiejar.CookieJar()
handler = urllib.request.HTTPCookieProcessor(cookie)
opener = urllib.request.build_opener(handler)

3.设置好需要请求的网址连接

url_base='http://travel.enn.cn/ssop/linzhi/admin/#/login'
login_url='http://travel.enn.cn//ssop/api/authority-v2/sys/login'
image_url='http://travel.enn.cn//ssop/api/authority-v2//captcha.jpg?uuid='

4.分析验证码

首先我们在刚刚上边的图片中点击带captcha.jpg?的链接,这个时候会得到一些信息,如图:
在这里插入图片描述
从这里我们可以看到,链接uuid=后面就是一个uuid,因此我们只需要通过uuid模块获取即可,然后这里的Response Headers,这个是爬虫的时候的请求头,我们需要对他进行重构,因此整体的获取验证码的请求代码如下:

headers={'Accept': 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8','Accept-Language': 'zh-CN,zh;q=0.9','Connection': 'keep-alive','Host': 'travel.enn.cn','Referer': 'http://travel.enn.cn/ssop/linzhi/admin/','User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36'
}

验证码整体请求代码:

uuid = str(uuid.uuid1())
request = urllib.request.Request(image_url+uuid, headers=headers)
picture = opener.open(request).read()
local = open('image.jpg', 'wb') 
local.write(picture)
local.close()

这个时候本地就会有一张验证码的图片,名字为image.jpg
我们只需要打开图片人工读取验证码,输入到程序,代码如下:

image = Image.open('image.jpg')
image.show()
SecretCode = input('输入验证码:')

这里的变量SecretCode就是后面用到的验证码


5.模拟登陆

我们以同样的分析办法,分析/login的链接,如图:
在这里插入图片描述
这里代表在登陆的时候的请求头,我们直接代码模拟请求头,代码如下:

headers={'Accept': 'application/json, text/plain, */*','Accept-Encoding': 'gzip, deflate','Accept-Language': 'zh-CN,zh;q=0.9','Connection': 'keep-alive','Content-Type': 'application/json; charset=UTF-8','Host': 'travel.enn.cn','Origin': 'http://travel.enn.cn','Referer': 'http://travel.enn.cn/ssop/linzhi/admin/','User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36'
}

在这里插入图片描述
这里是登陆的时候我们前端打包数据包发给服务器,服务器会根据这个数据来验证用户名和密码以及验证码,这里参数意思为:
captcha:验证码
username:用户名
password:密码
t:时间戳
uuid:这里是上边获取验证码的时候设置的uuid,这个服务器会根据uuid和captcha进行绑定验证
因此我们需要代码构建这个数据包,代码如下:

post_data_str='{"t":' + str(int(time.time()*1000)) +',"username":"' + user + '","password":"' + passwd +'","uuid":"' + uuid + '","captcha":"' + SecretCode + '"}'

这里的user和password需要事先设置,因为账号隐私问题不公开。


在这里插入图片描述
这里是我们代码请求把上边的信息打包给服务器后返回的数据,这里直接是请求代码,代码如下:

data = post_data_str.encode(encoding='utf-8')
request = urllib.request.Request(login_url,data=data,headers=headers)
login_result = opener.open(request).read().decode('utf-8')
login_jsonresult = json.loads(login_result)
if login_jsonresult['code'] == '0':print('登陆失败:',login_jsonresult['message'])
else:print('登陆成功')token = login_jsonresult['token']

注意这里的token是后面所有的数据爬虫所需要的token,这里先做保留,请求成功后的截图如下:
在这里插入图片描述


总结

以上为爬虫模拟登陆的基本思路,后续还有js逆向爬虫案例。
源码:模拟登录源码


http://chatgpt.dhexx.cn/article/M1oqnVKn.shtml

相关文章

答题小程序后台使用方法

答题小程序后台使用方法 一、概述 “微信答题小程序(仿头脑王者源码)在线教育考试pk答题小程序”主要功能有:每日签到、排位赛、好友PK、每日答题、大奖赛,群比赛2V2 3V3 5V5以及道具商店等。完整题型库、100多个分类,…

SpringBoot+mysql搭建微信小程序后台(4)服务器搭建

此前后端代码只能在本地运行,不能在其他设备,联网访问,而搭建配置服务器后,把项目放在服务器运行,就可以通过服务器来访问我们的项目,如网站,作小程序数据接口等 本文采用的是阿里云ECS服务器&…

怎样登陆微信小程序?怎样登陆微信小程序后台?微信小程序成员如何登陆后台管理?微信小程序怎么登录,如何正确登录微信小程序后台?微信小程序如何登录页面?具体操作步骤如下

官网地址: 微信公众平台微信公众平台,给个人、企业和组织提供业务服务与用户管理能力的全新服务平台。正在上传…重新上传取消​https://mp.weixin.qq.com/https://mp.weixin.qq.com/ 登陆上面的网址之后,可以用二维码或者账号登陆即可。 微…

小白的微信小程序后台外网配置

总的来说算是体验了一回完整的过程,从没有任何建站的经验一点点,去试探。说大坑吧。 后台网站服务的搭建 小程序的后台接口需要合法的域名 ,需要备案。需要去申请域名搭建云服务器并且备案。而且需要Https配置, 一开始配置Http…

微信小程序——微信小程序后台自定义分析,数据准确性分析

序 由于公司小程序产品大多为信息流产品,所以对小程序图文的数据准确性,精细度有较高的需求,以便编辑人员通过对数据的分析,可以针对性的编写图文,提高爆文数量。 问题描述 公司自己是有一个统计平台,对…

微信服务器小程序后台,微信小程序调用后台service教程详解

写在前头,本篇文章简单记录一下,在前后端分离的微信小程序应用中,前端访问后台service的实现思路,没有过多涉及技术实现方面。 先上一张官网的图片,它很清楚的讲明了要在后台service为每一个小程序用户提供登录信息需要…

小程序后台持续定位功能

wx.onLocationChange //监听位置实时变化 wx.stopLocationUpdate //关闭监听位置变化,前后台都不接收 wx.startLocationUpdate //开启小程序进入前台接收位置消息 wx.startLocationUpdataBackground //小程序进入前后台均接收消息 做好持续定位功能条件&#x…

配置小程序后台服务器

** 记录一下小程序后台配置过程 ** 1、小程序的体验版本和发布版本访问的后台数据,必须是配置在https服务器上的。 接下来详细描述配置https配置到成功使用的过程: 首先需要一个域名,可以在腾讯云和阿里云购买域名,然后进行域名…

小程序之后台交互--个人中心

目录 一、微信登录流程简介二、微信用户信息获取1、index.js2、index.wxml 三、微信登录流程代码详解1、后台准备①导入微信小程序SDK②application.yml③WxProperties④WxConfig⑤WxAuthController 1、登录-小程序①login.js②user.js③util.js 四、emoji的存储1、修改配置文件…

(小程序)后台交互--个人中心

目录 一、微信登录流程简介 二、微信用户获取用户昵称头像和昵称 ① wx.getUserProfile ——> 获取头像 三、微信登录流程代码详解 1.bindgetuserinfo——>把小程序端搭建起来 ① oa-mini 2.登录-小程序 ① wx.checkSession ② wx.login ③ wx.request 3.后台…

动态规划法和策略迭代在扫地机器人中确定状态值和动作值函数的策略评估(python实现 附源码 超详细)

觉得有帮助或需要源码请点赞关注收藏后评论区留言或私信博主要 在强化学习中,动态规划法主要用于求解有模型的MDP问题,尽管在现实任务中难以获得完备的环境模型,且动态规划法需要消耗大量的计算资源,但是作为强化学习的基础&#…

扫地机器人市场:米家、科沃斯激烈肉搏

配图来自Canva 一个干净、整洁的家,在给全家人营造一个舒适的生活空间的同时,也能给全家人带来好的心情以及和睦的家庭氛围,但要一直保持家的整洁,并不是一件轻松的事。 尤其是作为上班族,常常在繁忙的一天工作之后&…

扫地机器人的喋血江湖

2025年全球和中国扫地机器人市场规模,将分别达到130亿美元和50亿美元(瑞银预测数据)。而眼下,扫地机器人在国内市场渗透率仅4%-6%,远低于美国的13%。 这是资本狂热追逐扫地机器人行业的一个重要原因。 即便行业里已经有…

日语900句(衣食住行)PDF下载地址|百度云盘免费分享

有人说,金字塔的魅力就在于它完美的建筑结构,有坚实深厚的基础,才造就了塔尖的辉煌。 学好日语也是同样的道理,坚实的语言基础很多时候来源于大量的输入,量变达到质变,这种语言便能脱口而出,语感…

基于YoloV4的车辆检测跟踪系统(跟踪准确率大于99%)

1.结果展示 系统采用YoloV4检测车辆目标,对有效车辆检测框进行跟踪匹配,检测结果示意图如下: 检测结果视频为:基于YoloV4的车辆检测跟踪系统_哔哩哔哩_bilibili 2.系统工作流程 工作流程图如下: 检测跟踪系统性能&am…

跟踪自主车辆软件平台

跟踪自主车辆软件平台 Tracking autonomous vehicle software platforms 全世界——包括影音产业和媒体——都承认,通往4级和5级自动驾驶汽车的道路仍然漫长而曲折。 多家领先的汽车原始设备制造商和技术供应商推迟了自主汽车的上市,这是充分的证据&a…

【carsim+simulink 联合仿真——车辆轨迹MPC跟踪】

学习北理工的无人驾驶车辆模型预测控制第2版第四章,使用的仿真软件为Carsim8和MatlabR2019a联合仿真,使用MPC控制思想对车辆进行轨迹跟踪控制,并给出仿真结果。 mpc控制器函数:s-function function [sys,x0,str,ts] MY_MPCContr…

智能车辆路径跟踪控制:纯跟踪控制与Stanley控制算法,其他线相关算法

智能车辆路径跟踪控制:纯跟踪控制与Stanley控制算法,其他线相关算法 主要是MATLAB程序,可以根据需要的路径进行跟踪 ID:6920649147612984

LoRaWAN模块在车辆跟踪定位中的应用

目前 GPS已经在资产的管理中得到了越来越多的运用,如车辆跟踪、车队跟踪、资产监控等;人员跟踪,宠物跟踪,等等。在所有追踪装置中,最重要的是它的电池期望和监视距离。鉴于 LoRaWAN的功率消耗很小,而且能在…

无人驾驶车辆轨迹跟踪控制文献分享(1)

文献题目:Modelling and Control Strategies in Path Tracking Control for Autonomous Ground Vehicles: A Review of State of the Art and Challenges 作者:Noor Hafizah Amer Hairi Zamzuri Khisbullah Hudha Zulkiffli Abdul Kadir 论文类型&am…