Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.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在网站上填写HTML输入字段_Python_Python 3.x_Beautifulsoup_Python Requests_Urllib - Fatal编程技术网

如何使用Python在网站上填写HTML输入字段

如何使用Python在网站上填写HTML输入字段,python,python-3.x,beautifulsoup,python-requests,urllib,Python,Python 3.x,Beautifulsoup,Python Requests,Urllib,我正在尝试创建一个程序,将生成的字符串输入到网站上的字段中。然而,我尝试输入的不是表单,只是一个文本框,它引导到JavaScript脚本中 是我尝试使用的网站的URL。我想在序列号字段中输入序列号,然后单击“提交” 当我使用Chrome检查网络时,我看到我输入的字符串属于带有Captcha字段的“查询字符串参数”类别。我曾尝试使用requests库发送带有参数的GET请求,但它不起作用,因为当我打印响应HTML时,它与它应该说的内容不匹配。我可能做错了什么,我不太清楚 import reques

我正在尝试创建一个程序,将生成的字符串输入到网站上的字段中。然而,我尝试输入的不是表单,只是一个文本框,它引导到JavaScript脚本中

是我尝试使用的网站的URL。我想在序列号字段中输入序列号,然后单击“提交”

当我使用Chrome检查网络时,我看到我输入的字符串属于带有Captcha字段的“查询字符串参数”类别。我曾尝试使用requests库发送带有参数的GET请求,但它不起作用,因为当我打印响应HTML时,它与它应该说的内容不匹配。我可能做错了什么,我不太清楚

import requests
from bs4 import BeautifulSoup

#I saw headers so I added headers
headers= {
    'Content-Type': 'application/json',
    'DNT': '1',
    'Sec-Fetch-Mode': 'cors',
    'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Mobile Safari/537.36' 
}

#This is the data, I am trying to input 'hello' into the field
serial_data = {
    'serial_number': 'hello',
    'locale': 'en-us'
}

#I am sending the data
with requests.Session() as s:
    url = "URL OF SITE"
    r = s.get(url, headers=headers)
    soup = BeautifulSoup(r.content, 'html.parser')
    r = s.get(url, data=serial_data, headers=headers)         
    print(r.content)
我尝试输入的HTML是:

<input type="text" name="find-serial" id="serial-number" value="" class="form-input"> <p style="">No matching serial number.</p></div>

没有匹配的序列号


< P>我希望R.Cype将包含一个有效的代码已经被放入的结果页的HTML,我将能够处理BeautifulSoup。

< P>与网页交互并插入文本,考虑使用./P> 除了安装
selenium
,您还需要下载WebDriver二进制文件。例如,Google Chrome驱动程序是可用的

要将文本提交到该字段,可以尝试以下操作:

从selenium导入webdriver
browser=webdriver.Chrome(“chromedriver二进制文件的路径”)
browser.get(“站点URL”)
查找元素=浏览器。按元素id(“序列号”)查找元素
查找\u序列。发送\u键(“要发送的文本”)

谢谢你的回答!尽管如此,我需要做一些可以适度快速完成的事情,以及一些可以在后台完成的事情。我看到有两个请求,一个是OPTIONS,一个是GET,都有我输入的序列号作为查询字符串参数。GET参数为代码500,选项为代码200。Idk,如果有帮助的话。