Как я могу решить xml-parsing-error в python3.7 с BeautifulSoup? - PullRequest
0 голосов
/ 23 февраля 2019

Python версия: 3.7.2

Вот XML-файл.

<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:ls="https://www.littlstar.com">
<channel>
    <title><![CDATA[Name (46 videos)]]></title>
    <description><![CDATA[Name]]></description>
    <link>http://github.com/dylang/node-rss</link>
    <image>
        <url>http://1.1.1.1:3001/thumb\324bfb0834915ccc0edb73b5bf0b82c2.jpeg</url>
        <title>bla bla</title>
        <link></link>
    </image>
    <generator>RSS for Node</generator>
    <lastBuildDate>Sat, 23 Feb 2019 11:32:08 +0000</lastBuildDate>
    <category><![CDATA[Local]]></category>
....

, а вот и исходный код.это очень просто

f = open(xmlpath, 'r')
data = f.read()
f.close()

soup = BeautifulSoup(data, 'html.parser')
print(soup.prettify())

и ... результат равен

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:ls="https://www.littlstar.com">
 <channel>
  <title><![CDATA[Name (46 videos)]]></title>
  <description><![CDATA[Name]]></description>
  <link/>
  http://github.com/dylang/node-rss
  <image/>
<url>http://192.168.1.142:3001/thumb\324bfb0834915ccc0edb73b5bf0b82c2.jpeg</url>
...

Я потерял "link" и "image" теги.... Как я могу решить эту проблему?

Я пробовал обновить bs и использовать модуль синтаксического анализа lxml ...

1 Ответ

0 голосов
/ 23 февраля 2019

Компоненты .read () и .close () здесь не требуются.

просто

with open(xmlpath) as fp:
    soup = BeautifulSoup(fp, 'html.parser')
    print(soup.prettify())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...