python填写金数据
'''
将 main 中的{url}改为真 url
将 setd_data中 {姓名} {纬度} {经度} {地址} 改为确切数据
数据自行参考post
结果判断基于响应中是否包含“谢谢参与”字样
'''
import requests
import re
import time
import random
import datetime class JinShuJv:
def __init__(self,url):
self.url = url
self.post_url = url
self.header = None
self.cookie = None
self.data = None def set_header(self):
"""
随机生成ip,设置X-Forwarded-For
:return:
"""
ip = '{}.{}.{}.{}'.format(112, random.randint(64, 68), random.randint(0, 255), random.randint(0, 255))
self.header = {
'Host': 'jinshuju.net',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:74.0) Gecko/20100101 Firefox/74.0',
'Referer': self.url,
'Origin': 'https://jinshuju.net',
'X-Forwarded-For': ip
} def get_response(self):
"""
访问问卷网页,获取网页代码
:return: get请求返回的response
"""
response = requests.get(url=self.url, headers=self.header)
self.cookie = response.cookies
return response def get_authenticity_token(self,response):
authenticity_token=re.search(r'(?<=name="csrf-token" content=")\S+(==>?)',response.text)
return authenticity_token.group() def set_data(self):
response = self.get_response()
authenticity_token = self.get_authenticity_token(response)
now=str(datetime.date.today())
def temperature():
high=round(random.uniform(36.5,37.0),1)
low=round(high-round(random.uniform(0.3,0.5),1),1)
high=str(high)
low=str(low)
return [high,low] data={ }
data.update({"utf8":"✓"})
data.update({"authenticity_token":authenticity_token})
data.update({"entry[field_6]":now})
data.update({"entry[field_20]":"班级码"})
data.update({"entry[field_11]":"{姓名}"})
data.update({"entry[field_14]":temperature()[0]})
data.update({"entry[field_40]":temperature()[1]})
data.update({"entry[field_33]":"q348"})
data.update({"entry[field_37]":"q348"})
data.update({"entry[field_21]":temperature()[0]+'/'+temperature()[1]+','+temperature()[0]+'/'+temperature()[1]+','+temperature()[0]+'/'+temperature()[1]+','+temperature()[0]+'/'+temperature()[1]})
data.update({"entry[field_38]":"q348"})
data.update({"entry[field_35]":"q348"})
data.update({"entry[field_18][latitude]":"{纬度}"})
data.update({"entry[field_18][longitude]":"{经度}"})
data.update({"entry[field_18][address]":"{地址}"})
data.update({"entry[field_36]":"q348"})
data.update({"entry[field_34]":"无"})
data.update({"entry[field_39]":""})
data.update({"embedded":""})
data.update({"banner":""})
data.update({"header":""})
data.update({"background":""})
data.update({"background_image":""})
data.update({"form_margin":""})
data.update({"code":""})
data.update({"submit_link_generated_from":""})
self.data=data def post_data(self):
"""
发送数据给服务器
:return: 服务器返回的结果
"""
self.set_data()
response = requests.post(url=self.post_url, data=self.data, headers=self.header, cookies=self.cookie)
return response def run(self):
self.set_header()
result = self.post_data()
# print(result.content.decode())
if "谢谢参与" in result.content.decode():
print("success")
else:
print("fail") if __name__ == "__main__":
j=JinShuJv({url})
j.run()
参考:
https://www.jianshu.com/p/34961ceedcb4
python填写金数据的更多相关文章
- python 读取excel数据并将测试结果填入Excel
python 读取excel数据并将测试结果填入Excel 读取一个Excel中的一条数据用例,请求接口,然后返回结果并反填到excel中.过程中会生成请求回来的文本,当然还会生成一个xml文件.具体 ...
- 使用Python解析JSON数据的基本方法
这篇文章主要介绍了使用Python解析JSON数据的基本方法,是Python入门学习中的基础知识,需要的朋友可以参考下: ----------------------------------- ...
- python matplotlib plot 数据中的中文无法正常显示的解决办法
转发自:http://blog.csdn.net/laoyaotask/article/details/22117745?utm_source=tuicool python matplotlib pl ...
- C#调用金数据API
首先,吐槽一下金数据的API文档 http://help.jinshuju.net/articles/api-intro.html写的很粗糙啊...反正我是没太看明白 拿表单api举例,只告诉你了个地 ...
- Python/Numpy大数据编程经验
Python/Numpy大数据编程经验 1.边处理边保存数据,不要处理完了一次性保存.不然程序跑了几小时甚至几天后挂了,就啥也没有了.即使部分结果不能实用,也可以分析程序流程的问题或者数据的特点. ...
- Windows下Python读取GRIB数据
之前写了一篇<基于Python的GRIB数据可视化>的文章,好多博友在评论里问我Windows系统下如何读取GRIB数据,在这里我做一下说明. 一.在Windows下Python为什么无法 ...
- 为什么说Python 是大数据全栈式开发语言
欢迎大家访问我的个人网站<刘江的博客和教程>:www.liujiangblog.com 主要分享Python 及Django教程以及相关的博客 交流QQ群:453131687 原文链接 h ...
- 用Python浅析股票数据
用Python浅析股票数据 本文将使用Python来可视化股票数据,比如绘制K线图,并且探究各项指标的含义和关系,最后使用移动平均线方法初探投资策略. 数据导入 这里将股票数据存储在stockData ...
- Python读取JSON数据,并解决字符集不匹配问题
今天来谈一谈Python解析JSON数据,并写入到本地文件的一个小例子. – 思路如下 从一个返回JSON天气数据的网站获取到目标JSON数据串 使用Python解析出需要的部分 写入到本地文件,供其 ...
随机推荐
- Mol Cell Proteomics. | 粪便微生物蛋白质的组成与饮食诱导肥胖倾向的关联研究
题目:Associations of the Fecal Microbial Proteome Composition and Proneness to Diet-induced Obesity 期刊 ...
- 用docker搭建selenium grid分布式环境实践之路
最近需要测试zoom视频会议,同时模拟100个人加入会议.经过了解,zoom提供了直接通过url链接加入会议的方式(只能通过chrome浏览器或者FireFox浏览器,因为用的协议是webrtc). ...
- Python编写“求一元二次方程的解”
#求一元二次方程的解 import math def equation(a,b,c): h=b*b-4*a*c #一元二次方程的解,百度来的 if h>=0: x1=(-b+math.sqrt( ...
- pytorch tensor的索引与切片
切片方式与numpy是类似. * a[:2, :1, :, :], * 可以用-1索引. * ::2,表示所有数据,间隔为2,即 start:end:step. * a.index_select(1 ...
- ubuntu 18.04下virtualbox安装windows虚拟机+增强功能+secureCRT
先强调一下,我是在Ubuntu里安装windows虚拟机,如果要看如何安装linux虚拟机的话,那么你走错地方了. 我一直使用Linux系统做开发的,选择Ubuntu是因为多数常用软件对Ubuntu支 ...
- Java网络编程——Socket
网络是连接不同计算机的媒介,不同的计算机依靠网络来互相通信,即传递数据. Java中与网络编程相关的部分主要是Socket(套接字),它作为一种抽象的结构,实现了与通信相关的各类方法,构成一套完整的通 ...
- Building Applications with Force.com and VisualForce(Dev401)(十六):Data Management: Introduction to Upsert
Dev401-017:Data Management: Introduction to Upsert Module Objectives1.Define upsert.2.Define externa ...
- Leetcode_239. 滑动窗口最大值
单调队列模板题,扫描一遍,队尾维护单调性,队头维护不超过大小为k的区间. code class Solution { public: vector<int> maxSlidingWindo ...
- C++ 按址操作
一.指针 二.变量与指针 注意区别char 和char *. !!!!!!! 二.函数与指针 #include<iostream> #include<string> using ...
- Python Tkinter Grid布局管理器详解
Grid(网格)布局管理器会将控件放置到一个二维的表格里.主控件被分割成一系列的行和列,表格中的每个单元(cell)都可以放置一个控件. 注意:不要试图在一个主窗口中混合使用pack和grid (1) ...