我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Windows系统中Python实现每

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Windows系统中Python实现每

之前说要每周写的。。然后最近忙着毕业就一直没动。>.<感觉月更都困难了。

问题描述

在每天比如10点到11点之间定时自动登陆网站,签到

实现思路

  1. 使用fiddler抓包工具先登陆一遍,把请求的地址,header等信息都拿到。

  2. 使用python写一个脚本,模拟浏览器向服务器发送登陆,签到请求

  3. 使用批处理bat来写几句话,随机在一小时内运行python脚本

  4. 使用Windows自带的计划任务,定时每日10点运行bat脚本

另外,之前不想那么麻烦写代码,还去找了一个叫做按键精灵的软件来模拟执行。不过那个软件是模拟鼠标和键盘,所以执行的时候会有界面出现,而且你的鼠标和键盘不能动,所以后来放弃了。如果觉得这个麻烦也可以试试那个。可以生成一个按键小精灵的exe,用计划任务定时执行。这个软件也很邪教啊,还可以自动截图。

实现过程

一、fiddler抓包

这个直接下载然后上手做就可以了,打开工具,然后进行正常的登陆,每一个请求的过程都有。主要目的是找到每个发送请求的url和header信息。
比如我练习网站的登陆请求发送的url是http://XXX.com/Home/Login/log...。

这个具体的url也可以用谷歌浏览器chrome进入审查元素去选取按钮,简陋一些的网站可以看到js代码是怎么跳转过去的。如果遇到一些按钮点击一次以后无法再点,可以用这个办法找它的url。

二、python写请求脚本

这里用这里用python3写的,这部分总结晚点写:P

import urllib.request  
import urllib  
import gzip  
import http.cookiejar  
import time
  
# generate request header, deal with cookie  
def getOpener(head):  
    # deal with the Cookies  
    cj = http.cookiejar.CookieJar()
    pro = urllib.request.HTTPCookieProcessor(cj)  
    opener = urllib.request.build_opener(pro)  
    header = []  
    for key, value in head.items():  
        elem = (key, value)  
        header.append(elem)  
    opener.addheaders = header  
    return opener  
  
#encapsulate the header as the browser
header = {  
    'Connection': 'Keep-Alive',  
    'Accept-Language': 'zh-CN',  
    'Accept': 'image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*',  
    'User-Agent': 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E)',  
    'Accept-Encoding': 'gzip, deflate',  
    'X-Requested-With': 'XMLHttpRequest',  
    'Host': 'http://XXX.com/',  
}  


url = 'http://XXX.com/Home/Login/login_submit'  
opener = getOpener(header)  
  
id = 'xxxx'#你的用户名  
password = 'fddafda'#你的密码,抓包是什么就输什么,有时候是md5加密的
postDict = {  
        'logname': id,  
        'passwd': password,  
}  
#这里的post数据的json可以检查fiddler的webform里会有。

postData = urllib.parse.urlencode(postDict).encode()  
op = opener.open(url, postData)  
data = op.read()  
print(data)

#签到
url = 'http://XXX.com/index/index/sign/P/in'
op = opener.open(url)
data = op.read()
print(data)

三、bat调用python脚本

@echo off
rem 这里就是先用cd命令转到.py文件所在的地址
C:
cd C:\Windows\

rem 用random生成一个数字对3600秒取余得到一个一小时内的随机秒数存在rd中
set /a rd=%random%%%3600
rem ping用于等待若干秒
ping -n %rd% 127.0.0.1 > nul 
python test.py

rem 生成日志
set  today=%date:~0,4%-%date:~5,2%-%date:~8,2%
echo login at %today%_%time:~0,2%:%time:~3,2%  >> E:\LogFile\log%today%.txt
exit

rem是注释可以删,python里面还有一个pythonw.exe调用这个可以完全不出现界面。如果命令行cmd里面没有python,去环境变量path里面加一下python所在的地址。

总结

实现这个小任务,让我发现python的功能确实很大,而且可以用的库也非常多。这里主要是在廖雪峰的python教程中查看的python基本的东西。然后搜了一个例子。模仿着做的。

另外,对前端的启发也蛮大的。防止这些爬虫去解析前端的信息,主要可以有以下措施:

  • 对所有发布的网站中JS进行压缩混淆加密

  • 一些关键数据可以用图片展示,增加一点爬取难度

  • 登陆设置验证码和动态token

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Windows系统中Python实现每

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Windows系统中Python实现每

之前说要每周写的。。然后最近忙着毕业就一直没动。>.<感觉月更都困难了。问题描述在每天比如10点到11点之间定时自动登陆网站,签到实现思路使用fiddler抓包工具先登陆一遍,把请求的地址,header等信息都拿到。使用python写一个脚
2023-01-31

Python控制windows系统音量实现实例

这篇文章主要介绍了Python控制windows系统音量实现实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
2023-01-28

在windows系统中实现python3安装lxml

lxml是Python中与XML及HTML相关功能中最丰富和最容易使用的库。lxml并不是Python自带的包,而是为libxml2和libxslt库的一个Python化的绑定。它与众不同的地方是它兼顾了这些库的速度和功能完整性,以及纯Py
2022-06-04

每个Windows 操作系统的注册表中的 CurrentVersion 值

每个Windows操作系统的注册表中的CurrentVersion值如下:- Windows 95/98/ME:5.00- Windows NT 4.0: 4.00- Windows 2000:5.00- Windows XP:5.01-
2023-09-27

Windows 系统中Python常用的

在Windows系统中可以用  (1).   exit() 退出Python(2).   Ctrl+z   退出Python
2023-01-31

python 实现选课系统

角色:学校、学员、课程、讲师>作业需求 - [ ] 1.创建北京、上海 2 所学校- [ ] 2.创建linux , python , go 3个课程 , linux\py 在北京开, go 在上海开- [ ] 3.课程包含,周期,价
2023-01-31

Unity如何实现单机游戏每日签到系统

小编给大家分享一下Unity如何实现单机游戏每日签到系统,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Unity实现每日签到系统的具体代码,具体内容如下代码:us
2023-06-14

Windows 中通过Python实现p

由于ping命令在ping的时候无法加入时间,不能够直观分析结果。便想在ping的时候加入时间戳。1.首先需要系统配置了Python的环境,我的环境如下,这里就不介绍环境搭建步骤。2.以下是代码展示,新建一个ping.py文件import
2023-01-31

怎么在linux与windows系统中实现文件互传

这篇文章将为大家详细讲解有关怎么在linux与windows系统中实现文件互传,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一、linux和windows互传文件(前提是:必须使用XShel
2023-06-07

Python实现系统交互(subprocess)

目录一、os与commands模块1. os.system()函数实例2. os.popen()函数实例3. commands.getstatusoutput()函数实例二、subprocess模块1. subprocess模块中的常用函数
2022-06-02

用 Python 实现每秒处理 120

用 Python 做到每秒处理上百万次 HTTP 请求,可能吗?也许不能,但直到最近,这已成为现实。很多公司都在为了提升程序的执行性能和降低服务器的运营成本,而放弃 Python 去选择其它编程语言,其实这样做并不是必须,因为 Python
2023-01-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录