'''
将 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填写金数据的更多相关文章

  1. python 读取excel数据并将测试结果填入Excel

    python 读取excel数据并将测试结果填入Excel 读取一个Excel中的一条数据用例,请求接口,然后返回结果并反填到excel中.过程中会生成请求回来的文本,当然还会生成一个xml文件.具体 ...

  2. 使用Python解析JSON数据的基本方法

    这篇文章主要介绍了使用Python解析JSON数据的基本方法,是Python入门学习中的基础知识,需要的朋友可以参考下:     ----------------------------------- ...

  3. python matplotlib plot 数据中的中文无法正常显示的解决办法

    转发自:http://blog.csdn.net/laoyaotask/article/details/22117745?utm_source=tuicool python matplotlib pl ...

  4. C#调用金数据API

    首先,吐槽一下金数据的API文档 http://help.jinshuju.net/articles/api-intro.html写的很粗糙啊...反正我是没太看明白 拿表单api举例,只告诉你了个地 ...

  5. Python/Numpy大数据编程经验

    Python/Numpy大数据编程经验 1.边处理边保存数据,不要处理完了一次性保存.不然程序跑了几小时甚至几天后挂了,就啥也没有了.即使部分结果不能实用,也可以分析程序流程的问题或者数据的特点.   ...

  6. Windows下Python读取GRIB数据

    之前写了一篇<基于Python的GRIB数据可视化>的文章,好多博友在评论里问我Windows系统下如何读取GRIB数据,在这里我做一下说明. 一.在Windows下Python为什么无法 ...

  7. 为什么说Python 是大数据全栈式开发语言

    欢迎大家访问我的个人网站<刘江的博客和教程>:www.liujiangblog.com 主要分享Python 及Django教程以及相关的博客 交流QQ群:453131687 原文链接 h ...

  8. 用Python浅析股票数据

    用Python浅析股票数据 本文将使用Python来可视化股票数据,比如绘制K线图,并且探究各项指标的含义和关系,最后使用移动平均线方法初探投资策略. 数据导入 这里将股票数据存储在stockData ...

  9. Python读取JSON数据,并解决字符集不匹配问题

    今天来谈一谈Python解析JSON数据,并写入到本地文件的一个小例子. – 思路如下 从一个返回JSON天气数据的网站获取到目标JSON数据串 使用Python解析出需要的部分 写入到本地文件,供其 ...

随机推荐

  1. echar图柱状图和折线图混合加双侧y轴坐

    代码如下: floorSalesBar(){//方法名====这个方法应该放在methods中并在mounted中调用哦 methods let _this = this; let myChart = ...

  2. Cisco 综合配置(四)

    MSTP+HSRP 模式 为实现路由的备用.冗余: VLAN10,20 流量在CO-SW1上为active状态,在CO-SW2 上为standby状态, VLAN30,40 流量在CO-SW1上为st ...

  3. Django魔法

    (●'◡'●)

  4. settings插拔式源码

    创建一个文件夹notify __init__.py import settings import importlib def send_all(content): for path_str in se ...

  5. Asp.Net Core系列 电子书(摘自:Yaopengfei(姚鹏飞))

    链接:https://pan.baidu.com/s/1uSmlArXinvNPKoLvck1hFg 提取码:34ce

  6. 为arm-unknown-linux-gnueabi-gcc工具链添加常用库(zlib、libpng、libjpeg、libtiff、libtool)(转载)

    主机环境: RHEL6.0 kernel 2.6.32-220.2.1.el6.i686 gcc-4.4.6   1.zlib http://sourceforge.net/projects/libp ...

  7. 动态规划-TSP问题-最短超级串

    2020-03-03 22:55:08 问题描述: 给定一个字符串数组 A,找到以 A 中每个字符串作为子字符串的最短字符串. 我们可以假设 A 中没有字符串是 A 中另一个字符串的子字符串. 示例 ...

  8. JavaScript模块化-CommonJS、AMD、CMD、UMD、ES6

    前言:模块化开发需求 在JS早期,使用script标签引入JS,会造成以下问题: 加载的时候阻塞网页渲染,引入JS越多,阻塞时间越长. 容易污染全局变量. js文件存在依赖关系,加载必须有顺序.项目较 ...

  9. 十分钟一起学会Inception网络

    作者 | 荔枝boy 编辑 | 安可 一.Inception网络简介 二.Inception网络模块 三.Inception网络降低参数计算量 四.Inception网络减缓梯度消失现象 五.Ince ...

  10. CSS3过渡结束监听事件,清除/修改表单元素的一些默认样式

    document.querySelector('div').addEventListener('transitionEnd',function(){ console.log('过度结束') }) 如果 ...