Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
模拟一个;点击";用Python_Python_Buttonclick - Fatal编程技术网

模拟一个;点击";用Python

模拟一个;点击";用Python,python,buttonclick,Python,Buttonclick,我已经阅读了所有主题,但不太清楚如何在python中模拟单击。我正在使用请求,但我不知道如何模拟它 我需要“单击”的代码是: url服务器 欢迎使用url服务器! 现在生成! 多亏了大家的帮助,你可以使用chrome的开发者工具来观察网络流量,然后使用请求库来模拟http请求。如果你知道表单发布到哪个操作,你可以通过直接与发布相结合来完成 行:很重要,因为此哈希很可能是在提供页面时生成的。这样做是为了对抗DDoS,例如有人向表单操作发送垃圾邮件请求。因此,为了让Web服务器接受您的请求,

我已经阅读了所有主题,但不太清楚如何在python中模拟单击。我正在使用
请求
,但我不知道如何模拟它

我需要“单击”的代码是:


url服务器

欢迎使用url服务器!

现在生成!

多亏了大家的帮助,你可以使用chrome的开发者工具来观察网络流量,然后使用请求库来模拟http请求。

如果你知道表单发布到哪个操作,你可以通过直接与发布相结合来完成

行:
很重要,因为此哈希很可能是在提供页面时生成的。这样做是为了对抗DDoS,例如有人向表单操作发送垃圾邮件请求。因此,为了让Web服务器接受您的请求,您必须检查该值并将其传递给POST请求

你可以这样做:

import requests
from bs4 import BeautifulSoup


url = "http://some-url/"                              # replace with target URL
r  = requests.get(url)
if r.status_code == 200:
    bs = BeautifulSoup(r.text)
    form = bs.findAll("form", {"class": "addf"})[0]   # find the form

    inputs = form.findAll("input")                    # find the input-fields
    hash = None
    for input in inputs:
        if input.get("name") == "formid":             # find the hash
            hash = input.get("value")

    if hash:
        action = "createusername"                     # replace with target action
        res = requests.post(url + action, data={
            # ... other parameters, if any
            "formid" : hash
        })
        print(res)

您可能需要优化Beauty Soup搜索HTML的方式,例如,如果多个元素具有
class=“addf”

这对我来说很有效:

import requests as req
import random
import math
username = "";    
payload = {'Username': username,'password': 'password'}
resp = req.post(url, data=payload)

谢谢!:)

你的问题是什么?试试SeleniumWebDriver
import requests as req
import random
import math
username = "";    
payload = {'Username': username,'password': 'password'}
resp = req.post(url, data=payload)