Я бы хотел использовать Python 3 для создания веб-скребкового приложения. Веб-сайт, который я пытаюсь очистить, содержит недопустимый xhtml - в нем есть теги с двойными именами атрибутов.Webscraping с Python3 - Игнорирование повторяющихся ошибок атрибута
Я хотел бы использовать xml.dom.minidom для синтаксического анализа выбранных страниц. Из-за повторяющихся имен атрибутов, содержимое не разобрать, и я представил со следующей ошибкой:
Traceback (most recent call last):
File "scraper.py", line 45, in <module>
scraper.list()
File "scraper.py", line 34, in list
dom = parseString(response.text)
File "C:\Python34\lib\xml\dom\minidom.py", line 1970, in parseString
return expatbuilder.parseString(string)
File "C:\Python34\lib\xml\dom\expatbuilder.py", line 925, in parseString
return builder.parseString(string)
File "C:\Python34\lib\xml\dom\expatbuilder.py", line 223, in parseString
parser.Parse(string, True)
xml.parsers.expat.ExpatError: duplicate attribute: line 2, column 43
Я хочу, чтобы игнорировать эту ошибку и разобрать документ в любом случае. Я не могу контролировать данные icoming html. Что я могу сделать?
Вот мой код:
import requests
from xml.dom.minidom import parse, parseString
class Scraper:
def __init__(self):
pass
def list(self,pages=1):
response = requests.get('http://example.com')
dom = parseString(response.text)
print(dom.toxml)
if __name__ == "__main__":
scraper = Scraper()
scraper.list()