使用请求从ServiceDesk请求中刮取数据

问题描述 投票:0回答:1

我作为应用程序的3级支持工作,我主要将ManageEngine ServiceDesk的请求发送到Jira,有点无聊。所以我认为我可以使用请求库在Python中创建一个Web scraper,它可以从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)
python-3.x python-requests
1个回答
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)
© www.soinside.com 2019 - 2024. All rights reserved.