我作为应用程序的3级支持,主要是将ManageEngine ServiceDesk的请求发送到Jira,这有点无聊。因此,我认为我可以使用请求库在Python中制作网络抓取工具,该库可以从ServiceDesk(title,description,prirority,etc)
获取有关该问题的信息,并将其放入Jira。我已经制作了一个连接到Jira并提交票证的脚本,但是我不知道如何登录到ServiceDesk ...我尝试使用用户名,密码和域登录,但仍然无法正常工作,我使用了用户代理作为标题。当我运行脚本来显示内容时,它会显示登录页面的内容。我不知道外面是否有人可以帮忙,但是值得尝试。
import requests
from bs4 import BeautifulSoup
headers = {
'user-agent': 'xxxx'}
cookies = {
'sdpcsrfcookie': 'xxxx',}
data = {
'j_username': 'xxxx',
'j_password': 'xxxx',
'domain': x,
'DOMAIN_NAME': 'xxxx',
'LocalAuthWithDomain': 'xxxx',
'logonDomainName': 'xxxx',
'AUTHRULE_NAME': 'xxxx'
}
with requests.Session() as s:
url = "https://sv.info"
r = s.get(url, headers=headers)
print(r.cookies)
cookies['session'] = cookie_string = "; ".join([str(x)+"="+str(y) for x,y in cookies.items()])
r = s.post(url,headers=headers,data= data, cookies=cookies)
print(r.content)
答案 0 :(得分:0)
您应该将data
作为JSON字符串发送,并使用s.headers.update(headers)
向请求添加标头,所有代码应如下所示:
import requests
from bs4 import BeautifulSoup
headers = {
'user-agent': 'xxxx'}
cookies = {
'sdpcsrfcookie': 'xxxx',}
data = {
'j_username': 'xxxx',
'j_password': 'xxxx',
'domain': x,
'DOMAIN_NAME': 'xxxx',
'LocalAuthWithDomain': 'xxxx',
'logonDomainName': 'xxxx',
'AUTHRULE_NAME': 'xxxx'
}
with requests.Session() as s:
url = "https://sv.info"
s.headers.update(headers)
r = s.get(url)
print(r.cookies)
cookies['session'] = cookie_string = "; ".join([str(x)+"="+str(y) for x,y in cookies.items()])
r = s.post(url, json=data, cookies=cookies)
print(r.content)