我有一个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编写一个可以做同样的事情的脚本
谢谢
答案 0 :(得分:0)
希望您知道shell和python是不同的语言,因此工作方式有所不同,我将Scrapy,requests和regular 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)
如果有人可以帮助我进行故障排除,我会得到一个错误作为响应