• python填写金数据


      1 '''
      2 将 main 中的{url}改为真 url
      3 将 setd_data中 {姓名} {纬度} {经度} {地址} 改为确切数据
      4 数据自行参考post
      5 结果判断基于响应中是否包含“谢谢参与”字样
      6 '''
      7 import requests
      8 import re
      9 import time
     10 import random
     11 import datetime
     12 
     13 class JinShuJv:
     14     def __init__(self,url):
     15         self.url = url
     16         self.post_url = url
     17         self.header = None
     18         self.cookie = None
     19         self.data = None
     20 
     21     def set_header(self):
     22         """
     23         随机生成ip,设置X-Forwarded-For
     24         :return:
     25         """
     26         ip = '{}.{}.{}.{}'.format(112, random.randint(64, 68), random.randint(0, 255), random.randint(0, 255))
     27         self.header = {
     28             'Host': 'jinshuju.net',
     29             'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:74.0) Gecko/20100101 Firefox/74.0',
     30             'Referer': self.url,
     31             'Origin': 'https://jinshuju.net',
     32             'X-Forwarded-For': ip
     33         }
     34 
     35     def get_response(self):
     36         """
     37         访问问卷网页,获取网页代码
     38         :return: get请求返回的response
     39         """
     40         response = requests.get(url=self.url, headers=self.header)
     41         self.cookie = response.cookies
     42         return response
     43 
     44     def get_authenticity_token(self,response):
     45         authenticity_token=re.search(r'(?<=name="csrf-token" content=")S+(==>?)',response.text)
     46         return authenticity_token.group()
     47 
     48     def set_data(self):
     49         response = self.get_response()
     50         authenticity_token = self.get_authenticity_token(response)
     51         now=str(datetime.date.today())
     52         def temperature():
     53             high=round(random.uniform(36.5,37.0),1)
     54             low=round(high-round(random.uniform(0.3,0.5),1),1)
     55             high=str(high)
     56             low=str(low)
     57             return [high,low]
     58 
     59         data={ }
     60         data.update({"utf8":""})  
     61         data.update({"authenticity_token":authenticity_token})
     62         data.update({"entry[field_6]":now})
     63         data.update({"entry[field_20]":"班级码"})
     64         data.update({"entry[field_11]":"{姓名}"})
     65         data.update({"entry[field_14]":temperature()[0]})
     66         data.update({"entry[field_40]":temperature()[1]})
     67         data.update({"entry[field_33]":"q348"})
     68         data.update({"entry[field_37]":"q348"})
     69         data.update({"entry[field_21]":temperature()[0]+'/'+temperature()[1]+','+temperature()[0]+'/'+temperature()[1]+','+temperature()[0]+'/'+temperature()[1]+','+temperature()[0]+'/'+temperature()[1]})
     70         data.update({"entry[field_38]":"q348"})
     71         data.update({"entry[field_35]":"q348"})
     72         data.update({"entry[field_18][latitude]":"{纬度}"})
     73         data.update({"entry[field_18][longitude]":"{经度}"})
     74         data.update({"entry[field_18][address]":"{地址}"})
     75         data.update({"entry[field_36]":"q348"})
     76         data.update({"entry[field_34]":""})
     77         data.update({"entry[field_39]":""})
     78         data.update({"embedded":""})
     79         data.update({"banner":""})
     80         data.update({"header":""})
     81         data.update({"background":""})
     82         data.update({"background_image":""})
     83         data.update({"form_margin":""})
     84         data.update({"code":""})
     85         data.update({"submit_link_generated_from":""})
     86         self.data=data
     87     
     88     def post_data(self):
     89         """
     90         发送数据给服务器
     91         :return: 服务器返回的结果
     92         """
     93         self.set_data()
     94         response = requests.post(url=self.post_url, data=self.data, headers=self.header, cookies=self.cookie)
     95         return response
     96 
     97     def run(self):
     98         self.set_header()
     99         result = self.post_data()
    100         # print(result.content.decode())
    101         if "谢谢参与" in result.content.decode():
    102             print("success")
    103         else:
    104             print("fail")
    105 
    106 if __name__ == "__main__":
    107     j=JinShuJv({url})
    108     j.run()

    参考:

    https://www.jianshu.com/p/34961ceedcb4

  • 相关阅读:
    古传拳经拳法秘要
    JAVA漏洞扫描工具之墨菲安全for IDEA
    PostgreSql 加密和解密
    DirBuster使用介绍
    Increase the default timeout value for the Service Control Manager in the Registry
    一文说透 MySQL JSON 数据类型(收藏)
    电脑常识——host文件修改(屏蔽网站或解开屏蔽)zz
    SQL语法学习记录(三)
    SQL语法学习记录(一)
    SQL语法学习记录(二)
  • 原文地址:https://www.cnblogs.com/unknowcry/p/12712914.html
Copyright © 2020-2023  润新知