如何使用Python在网站上填写HTML输入字段
我正在尝试创建一个程序,将生成的字符串输入到网站上的字段中。然而,我尝试输入的不是表单,只是一个文本框,它引导到JavaScript脚本中 是我尝试使用的网站的URL。我想在序列号字段中输入序列号,然后单击“提交” 当我使用Chrome检查网络时,我看到我输入的字符串属于带有Captcha字段的“查询字符串参数”类别。我曾尝试使用requests库发送带有参数的GET请求,但它不起作用,因为当我打印响应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
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,如果有帮助的话。