2016-11-16 2 views
1

В this answer мне сказали не использовать BeautifulSoup(xmlData, 'html.parser') для XML разобрать, но использовать BeautifulSoup(xmlData, 'xml'). Однако этот парсер не поставляется с BeautifulSoup.Как установить модуль для XML-анализа BeautifulSoup?

Согласно одному из комментариев, я попробовал:

питон -m пип установить LXML

Но получил:

Collecting lxml 
    Using cached lxml-3.6.4.tar.gz 
Installing collected packages: lxml 
    Running setup.py install for lxml ... error 
    Complete output from command D:\SOFT\Python3\python.exe -u -c "import setuptools, tokenize;__file__='C:\\U 
sers\\myuser\\AppData\\Local\\Temp\\pip-build-hl9fxzny\\lxml\\setup.py';f=getattr(tokenize, 'open', open)(__fi 
le__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C: 
\Users\myuser\AppData\Local\Temp\pip-ivemv19a-record\install-record.txt --single-version-externally-managed -- 
compile: 
    Building lxml version 3.6.4. 
    Building without Cython. 
    ERROR: b"'xslt-config' is not recognized as an internal or external command,\r\noperable program or batch 
file.\r\n" 
    ** make sure the development packages of libxml2 and libxslt are installed ** 

    Using build configuration of libxslt 
    running install 
    running build 
    running build_py 
    creating build 
    creating build\lib.win32-3.5 
    creating build\lib.win32-3.5\lxml 
    copying src\lxml\builder.py -> build\lib.win32-3.5\lxml 
    copying src\lxml\cssselect.py -> build\lib.win32-3.5\lxml 
    copying src\lxml\doctestcompare.py -> build\lib.win32-3.5\lxml 
    copying src\lxml\ElementInclude.py -> build\lib.win32-3.5\lxml 
    copying src\lxml\pyclasslookup.py -> build\lib.win32-3.5\lxml 
    copying src\lxml\sax.py -> build\lib.win32-3.5\lxml 
    copying src\lxml\usedoctest.py -> build\lib.win32-3.5\lxml 
    copying src\lxml\_elementpath.py -> build\lib.win32-3.5\lxml 
    copying src\lxml\__init__.py -> build\lib.win32-3.5\lxml 
    creating build\lib.win32-3.5\lxml\includes 
    copying src\lxml\includes\__init__.py -> build\lib.win32-3.5\lxml\includes 
    creating build\lib.win32-3.5\lxml\html 
    copying src\lxml\html\builder.py -> build\lib.win32-3.5\lxml\html 
    copying src\lxml\html\clean.py -> build\lib.win32-3.5\lxml\html 
    copying src\lxml\html\defs.py -> build\lib.win32-3.5\lxml\html 
    copying src\lxml\html\diff.py -> build\lib.win32-3.5\lxml\html 
    copying src\lxml\html\ElementSoup.py -> build\lib.win32-3.5\lxml\html 
    copying src\lxml\html\formfill.py -> build\lib.win32-3.5\lxml\html 
    copying src\lxml\html\html5parser.py -> build\lib.win32-3.5\lxml\html 
    copying src\lxml\html\soupparser.py -> build\lib.win32-3.5\lxml\html 
    copying src\lxml\html\usedoctest.py -> build\lib.win32-3.5\lxml\html 
    copying src\lxml\html\_diffcommand.py -> build\lib.win32-3.5\lxml\html 
    copying src\lxml\html\_html5builder.py -> build\lib.win32-3.5\lxml\html 
    copying src\lxml\html\_setmixin.py -> build\lib.win32-3.5\lxml\html 
    copying src\lxml\html\__init__.py -> build\lib.win32-3.5\lxml\html 
    creating build\lib.win32-3.5\lxml\isoschematron 
    copying src\lxml\isoschematron\__init__.py -> build\lib.win32-3.5\lxml\isoschematron 
    copying src\lxml\lxml.etree.h -> build\lib.win32-3.5\lxml 
    copying src\lxml\lxml.etree_api.h -> build\lib.win32-3.5\lxml 
    copying src\lxml\includes\c14n.pxd -> build\lib.win32-3.5\lxml\includes 
    copying src\lxml\includes\config.pxd -> build\lib.win32-3.5\lxml\includes 
    copying src\lxml\includes\dtdvalid.pxd -> build\lib.win32-3.5\lxml\includes 
    copying src\lxml\includes\etreepublic.pxd -> build\lib.win32-3.5\lxml\includes 
    copying src\lxml\includes\htmlparser.pxd -> build\lib.win32-3.5\lxml\includes 
    copying src\lxml\includes\relaxng.pxd -> build\lib.win32-3.5\lxml\includes 
    copying src\lxml\includes\schematron.pxd -> build\lib.win32-3.5\lxml\includes 
    copying src\lxml\includes\tree.pxd -> build\lib.win32-3.5\lxml\includes 
    copying src\lxml\includes\uri.pxd -> build\lib.win32-3.5\lxml\includes 
    copying src\lxml\includes\xinclude.pxd -> build\lib.win32-3.5\lxml\includes 
    copying src\lxml\includes\xmlerror.pxd -> build\lib.win32-3.5\lxml\includes 
    copying src\lxml\includes\xmlparser.pxd -> build\lib.win32-3.5\lxml\includes 
    copying src\lxml\includes\xmlschema.pxd -> build\lib.win32-3.5\lxml\includes 
    copying src\lxml\includes\xpath.pxd -> build\lib.win32-3.5\lxml\includes 
    copying src\lxml\includes\xslt.pxd -> build\lib.win32-3.5\lxml\includes 
    copying src\lxml\includes\etree_defs.h -> build\lib.win32-3.5\lxml\includes 
    copying src\lxml\includes\lxml-version.h -> build\lib.win32-3.5\lxml\includes 
    creating build\lib.win32-3.5\lxml\isoschematron\resources 
    creating build\lib.win32-3.5\lxml\isoschematron\resources\rng 
    copying src\lxml\isoschematron\resources\rng\iso-schematron.rng -> build\lib.win32-3.5\lxml\isoschematron\ 
resources\rng 
    creating build\lib.win32-3.5\lxml\isoschematron\resources\xsl 
    copying src\lxml\isoschematron\resources\xsl\RNG2Schtrn.xsl -> build\lib.win32-3.5\lxml\isoschematron\reso 
urces\xsl 
    copying src\lxml\isoschematron\resources\xsl\XSD2Schtrn.xsl -> build\lib.win32-3.5\lxml\isoschematron\reso 
urces\xsl 
    creating build\lib.win32-3.5\lxml\isoschematron\resources\xsl\iso-schematron-xslt1 
    copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_abstract_expand.xsl -> build\lib.win 
32-3.5\lxml\isoschematron\resources\xsl\iso-schematron-xslt1 
    copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_dsdl_include.xsl -> build\lib.win32- 
3.5\lxml\isoschematron\resources\xsl\iso-schematron-xslt1 
    copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_schematron_message.xsl -> build\lib. 
win32-3.5\lxml\isoschematron\resources\xsl\iso-schematron-xslt1 
    copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_schematron_skeleton_for_xslt1.xsl -> 
build\lib.win32-3.5\lxml\isoschematron\resources\xsl\iso-schematron-xslt1 
    copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\iso_svrl_for_xslt1.xsl -> build\lib.win3 
2-3.5\lxml\isoschematron\resources\xsl\iso-schematron-xslt1 
    copying src\lxml\isoschematron\resources\xsl\iso-schematron-xslt1\readme.txt -> build\lib.win32-3.5\lxml\i 
soschematron\resources\xsl\iso-schematron-xslt1 
    running build_ext 
    building 'lxml.etree' extension 
    error: Unable to find vcvarsall.bat 

    ---------------------------------------- 
Command "D:\SOFT\Python3\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\myuser\\AppData\\L 
ocal\\Temp\\pip-build-hl9fxzny\\lxml\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().repl 
ace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\myuser\AppData\Lo 
cal\Temp\pip-ivemv19a-record\install-record.txt --single-version-externally-managed --compile" failed with err 
or code 1 in C:\Users\myuser\AppData\Local\Temp\pip-build-hl9fxzny\lxml\ 

Я использую Python 3.5.2 и хотел то, что будет работать прямо из pip, смысл не нужно компилировать отдельно.

+0

'lxml' может быть собран в течение инсталяция, поэтому он может нуждаться в C/C++ источник кода или, по крайней мере, заголовочных файлов C? C++ '* .h' для библиотек' xslt' и 'xml'. – furas

+0

Мне нужно что-то более доступное ... – amphibient

+0

см. Неофициальное репо в ответе ниже. – furas

ответ

2

Вам понадобится компилятор для Windows, чтобы установить lxml через pip.

Некоторые неофициальные сборки доступны здесь: http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml

Поиск URL для правого пакета колеса, то это должно работать:

pip install http://url_to_wheel 
+0

спасибо, но я искал что-то, что работает прямо из 'pip' – amphibient

+0

как мне указать мой пункт в этот репозиторий? это может быть хорошим дополнением к ответу – amphibient

+0

Сложно на windows. Вам нужно установить Visual C++ express и точно такую ​​же версию VC++, которая была использована для компиляции Python. Вам также необходимо установить источники libxml и libxslt. См. Инструкции на веб-сайте lxml ... Много работы. –