如何将sh脚本转换为python脚本

时间:2019-10-01 08:06:03

标签: python-3.x

我有一个sh脚本代码,需要将其转换为python脚本。 我正在努力寻找对应的命令。

这是我的sh脚本

RESPONSE=`curl -s -X GET http://192.168.8.1/api/webserver/SesTokInfo`
COOKIE=`echo "$RESPONSE"| grep SessionID=| cut -b 10-147`
TOKEN=`echo "$RESPONSE"| grep TokInfo| cut -b 10-41`


DATA="<request><PageIndex>1</PageIndex><ReadCount>3</ReadCount> 
<BoxType>1</BoxType><SortType>0</SortType><Ascending>0</Ascending> 
<UnreadPreferred>1</UnreadPreferred></request>"

curl -b $COOKIE -c $COOKIE -H "X-Requested-With: XMLHttpRequest" --data 
"$DATA" http://192.168.8.1/api/sms/sms-list --header 
"__RequestVerificationToken: $TOKEN" --header "Content-Type:text/xml"

所以我用不同的特定标签返回html页面的前3个最新结果

我想用python编写一个可以做同样的事情的脚本

谢谢

2 个答案:

答案 0 :(得分:0)

希望您知道shell和python是不同的语言,因此工作方式有所不同,我将Scrapyrequestsregular expressions交给您。

看看您寻找问题解决方案的质量,我认为您应该能够实现想要的目标。

答案 1 :(得分:0)

我尝试从python库访问请求以访问会话ID和令牌,以便我可以访问下一页,但是在尝试将此参数传递给request.get时遇到了麻烦

#!/usr/bin/env python
from urllib.request import urlopen
import urllib.request
import urllib.parse
import requests
from bs4 import BeautifulSoup


response1= 'http://192.168.8.1/api/webserver/SesTokInfo'
page1= requests.get(response1)
result1 = BeautifulSoup(page1.text, 'html.parser')

for p in result1.find_all('sesinfo'):
    cookie=p.text
for q in result1.find_all('tokinfo'):
    token=q.text


headers = {
    'X-Requested-With': 'XMLHttpRequest',
    '__RequestVerificationToken':token,
    'Content-Type': 'text/xml'
}

data="<request><PageIndex>1</PageIndex><ReadCount>3</ReadCount><BoxType>1</BoxType><SortType>0</SortType><Ascending>0</Ascending><UnreadPreferred>1</UnreadPreferred></request>"

#response = requests.get('http://192.168.8.1/api/sms/sms-list', headers=headers, cookies=cookie, data=data)
result = BeautifulSoup(response.text, 'html.parser')

for r in result:
    print(r)

如果有人可以帮助我进行故障排除,我会得到一个错误作为响应