Я сталкиваюсь с этой ошибкой "xml.parsers.expat.ExpatError: не правильно сформирован (неверный токен):" при вставке данных URL с использованием minidom - PullRequest
0 голосов
/ 03 июля 2019

Я сталкиваюсь с этой ошибкой xml.parsers.expat.ExpatError: syntax error: line 1, column 0 при разборе данных по URL с использованием minidom.Кто-нибудь может помочь мне в этом?

Вот мой код:

from xml.dom import minidom
import urllib2
url= 'http://www.awgp.org/about_us'
openurl=urllib2.urlopen(url)
doc=minidom.parse("about_us.xml")

Ошибка:

Traceback (most recent call last):
File "test3.py", line 11, in <module>
doc=minidom.parse("about_us.xml")
File "C:\Python27\lib\xml\dom\minidom.py", line 1918, in parse
return expatbuilder.parse(file)
File "C:\Python27\lib\xml\dom\expatbuilder.py", line 924, in parse
result = builder.parseFile(fp)
File "C:\Python27\lib\xml\dom\expatbuilder.py", line 211, in parseFile
parser.Parse("", True)
xml.parsers.expat.ExpatError: syntax error: line 1, column 0

1 Ответ

0 голосов
/ 03 июля 2019
parser.Parse("", True)
xml.parsers.expat.ExpatError: syntax error: line 1, column 0

Вышеприведенные результаты вашей трассировки указывают мне, что ваш файл about_us.xml пуст.У вас есть openurl, но вы не показали, что когда-либо звонили openurl.read(), чтобы получить данные.Вы также не показали, где и как вы записали указанные данные в свой файл about_us.xml.

from xml.dom import minidom
import urllib2
url= 'http://www.awgp.org/about_us'
openurl=urllib2.urlopen(url)
doc=minidom.parse(openurl)
print doc

дает мне

Traceback (most recent call last):
  File "main.py", line 5, in <module>
    doc=minidom.parse(openurl)
  File "/usr/local/lib/python2.7/xml/dom/minidom.py", line 1918, in parse
    return expatbuilder.parse(file)
  File "/usr/local/lib/python2.7/xml/dom/expatbuilder.py", line 928, in parse
    result = builder.parseFile(file)
  File "/usr/local/lib/python2.7/xml/dom/expatbuilder.py", line 207, in parseFile
    parser.Parse(buffer, 0)
xml.parsers.expat.ExpatError: not well-formed (invalid token): line 51, column 81

, что указывает на страницу, которую вы пытаетесьанализировать как XML не правильно сформирован.Попробуйте использовать прекрасный суп , который, по памяти, очень простителен.

from BeautifulSoup import BeautifulSoup
import urllib2
url= 'http://www.awgp.org/about_us'
openurl=urllib2.urlopen(url)
soup = BeautifulSoup(openurl.read())
for a in soup.findAll('a'):
  print (a.text, a.get('href'))

Кстати, вам понадобится версия 3 Beautiful Soup, поскольку вы все еще на питоне 2.7

...