from bs4 import BeautifulSoup
import requests
source = requests.get('http://www.mocky.io/v2/5e34780e3000008c00d964dd').text
soup = BeautifulSoup(source)
print(soup)
вывод:
<textarea cols="100" name="olidata" readonly="" rows="40"><?xml version="1.0" encoding="UTF-8"?>
<EVENT spec="IDL:o2bcs/automator/common/tasklistEvents:1.0#tasklistupdateevent">
<?xml version="1.0" encoding="UTF-8"?>
<event spec="IDL:o2bcs/automator/common/tasklistEvents:1.0#tasklistupdateevent">
<tasklistoli>
<bpid>
<oid>B32028040:M11</oid>
<type>MIGOPT1</type>
</bpid>
<oli>
<tolicontrol>
<oliid>1</oliid>
<externalid1></externalid1>
<externalid2></externalid2>
<highlevelstatus>1</highlevelstatus>
<status>550</status>
<catalogue>14</catalogue>
<errorcode>500220</errorcode>
<errorstring>Unable to select the given SI COMP for deletion.</errorstring>
<subscriptionid></subscriptionid>
<activityid></activityid>
<activityaccesscode></activityaccesscode>
<dateofnetworkexecution></dateofnetworkexecution>
</tolicontrol>
<toli_1>
<discriminator>29</discriminator>
<tmigopt>
это дает мне хорошо структурированное XML (type = bs4.BeautifulSoup)
теперь, если я добавлю свой код с
print(soup.text)
вывод:
<?xml version="1.0" encoding="UTF-8"?>\r\n<EVENT spec="IDL:o2bcs/automator/common/tasklistEvents:1.0#tasklistupdateevent">\r\n \r\n\r\n \r\n \r\n B32028040:M11\r\n MIGOPT1\r\n \r\n \r\n \r\n 1\r\n \r\n \r\n 1\r\n 550\r\n 14\r\n 500220\r\n Unable to select the given SI COMP for deletion.\r\n \r\n \r\n \r\n \r\n \r\n \r\n 29\r\n \r\n \r\n \r\n 524742\r\n 40193375\r\n \r\n \r\n 40003859\r\n MOB\r\n o2UniteBasicService\r\n O2P0058\r\n 2018-05-08 00:00:00\r\n \r\n \r\n \r\n N\r\n \r\n \r\n \r\n 2014-07-09 00:00:00\r\n 0\r\n \r\n \r\n O2O0014\r\n \r\n 524742\r\n SIM
это дает мне очень плохие и неструктурированные данные, (type = str)
Я планирую использовать регулярные выражения в тексте, но мне нужны правильные данные, пожалуйста помогите