要在requests的get或post函数中使用身份验证,只需提供auth
参数。像这样:
response = requests.get(url, auth=('username', 'password'))
请参阅Requests 身份验证文档获取更详细的信息。
使用Chrome开发者工具,您可以检查包含要填写和提交的表单的HTML页面的元素。有关如何执行此操作的说明,请转到此处。您可以找到需要填充您的POST请求数据参数的数据。如果您不担心验证正在访问的站点的安全证书,则还可以在GET参数列表中指定。
如果您的HTML页面具有这些元素用于网络表单发布:
<textarea id="text" class="wikitext" name="text" cols="80" rows="20">
This is where your edited text will go
</textarea>
<input type="submit" id="save" name="save" value="Submit changes">
那么向此表单提交的Python代码如下:
import requests
from bs4 import BeautifulSoup
url = "http://www.someurl.com"
username = "your_username"
password = "your_password"
response = requests.get(url, auth=(username, password), verify=False)
page = BeautifulSoup(response.text)
txt = page.find('textarea', id="text").string
tag = page.find('input', attrs = {'name':'version'})
ver = tag['value']
txt = "Your text here, this will be what is written to the textarea for the post"
form_data = {
'save' : 'Submit changes'
'text' : txt
}
post = requests.post(url,auth=(username, password),data=form_data,verify=False)