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解析出需要的部分 写入到本地文件,供其 ...
随机推荐
- Redis缓存设计与性能优化
Redis我们一般是用作缓存,扛并发:或者用于某些特定的业务场景,比如前面说到redis各种数据类型的使用场景以及redis的哨兵和集群模式. 这里主要整理了下redis用作缓存,存在的一些问题,以及 ...
- 【webpack 系列】基础篇
Webpack 基础篇 基本概念 Webpack 是一个现代 JavaScript 应用程序的静态模块打包器.当 webpack 处理应用程序时,它会递归地构建一个依赖关系图,其中包含应用程序需要的每 ...
- jQuery的层级选择器
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8 ...
- Oracle, Mysql及Sql Server的区别
从事技术工作以来,算是把关系型数据库SQL Server,Oracle, MySQL均用了一遍,本文参考网友的梳理,做一下知识总结. 源头说起 Oracle:中文译作甲骨文,这是一家传奇的公司,有一个 ...
- [POJ2533]Longest Ordered Subsequence<dp>
题目链接:http://poj.org/problem?id=2533 描述: A numeric sequence of ai is ordered if a1 < a2 < ... & ...
- LFU五种实现方式,从简单到复杂
前言 最近刷力扣题,对于我这种 0 基础来说,真的是脑壳疼啊.这个月我估计都是中等和困难题,没有简单题了. 幸好,力扣上有各种大牛给写题解.看着他们行云流水的代码,真的是羡慕不已.让我印象最深刻的就是 ...
- css中(单冒号):after和(双冒号)::after的区别
:after是伪元素 .::after是伪类 什么是伪类? CSS伪类是添加到选择器的关键字,指定要选择的元素的特殊状态.例如,:hover可被用于在用户将鼠标悬停在按钮上时改变按钮的颜色. ::af ...
- 1018 Public Bike Management (30 分)
There is a public bike service in Hangzhou City which provides great convenience to the tourists fro ...
- node.js模拟学校教务处登录
临近毕业,在做毕设,我的毕设中有一个功能是模拟我学校的教务处登录以获得cookie,本来以为是挺简单的一个功能,但却花了我两天的时间.(我学校教务处用的是湖南强智科技开发的) 在网上搜了大量的模拟登录 ...
- Mac通过homebrew 安装mysql
来源:http://timtang.me/blog/2011/12/07/mac-homebrew-mysql/ 使用MBP有一年了,开始想在工作中使用mac由于各种不习惯最终失败,导致自己使用了一年 ...