Я работаю в службе поддержки уровня 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)
Вы должны отправить 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)