Я пытаюсь разобрать смайлики в предоставленном URL.Это учебное пособие в Книге обсуждения данных, которое поможет мне понять анализ данных.Это дословный код из учебника, и в конце выдает ошибку.Я слышал предложения по использованию urllib2, но смысл этого упражнения - использовать lxml.Это достижимо, или этот пример просто устарел?Можете ли вы дать некоторое представление, чтобы запустить это, проанализировать эмодзи, а затем вернуть список.
from lxml import html
page = html.parse('http://www.emoji-cheat-sheet.com/')
proper_headers = page.xpath('//h2|//h3')
proper_lists = page.xpath('//ul')
all_emoji = []
for header, list_cont in zip(proper_headers, proper_lists):
section = header.text
for li in list_cont.getchildren():
emoji_dict = {}
spans = li.xpath('div/span')
if len(spans):
link = spans[0].get('data-src')
if link:
emoji_dict['emoji_link'] = li.base_url + link
else:
emoji_dict['emoji_link'] = None
emoji_dict['emoji_handle'] = spans[1].text_content()
else:
emoji_dict['emoji_link'] = None
emoji_dict['emoji_handle'] = li.xpath('div')[0].text_content()
emoji_dict['section'] = section
all_emoji.append(emoji_dict)
print all_emoji
Ошибка:
Traceback (most recent call last):
File "chp11-scraping/lxml_emoji_xpath.py", line 24, in <module>
page = html.parse('http://www.emoji-cheat-sheet.com/')
File "/home/ryan/.local/lib/python2.7/site-packages/lxml/html/__init__.py", line 940, in parse
return etree.parse(filename_or_url, parser, base_url=base_url, **kw)
File "src/lxml/etree.pyx", line 3426, in lxml.etree.parse
File "src/lxml/parser.pxi", line 1840, in lxml.etree._parseDocument
File "src/lxml/parser.pxi", line 1866, in lxml.etree._parseDocumentFromURL
File "src/lxml/parser.pxi", line 1770, in lxml.etree._parseDocFromFile
File "src/lxml/parser.pxi", line 1163, in lxml.etree._BaseParser._parseDocFromFile
File "src/lxml/parser.pxi", line 601, in lxml.etree._ParserContext._handleParseResultDoc
File "src/lxml/parser.pxi", line 711, in lxml.etree._handleParseResult
File "src/lxml/parser.pxi", line 638, in lxml.etree._raiseParseError
IOError: Error reading file 'http://www.emoji-cheat-sheet.com/': failed to load external entity "http://www.emoji-cheat-sheet.com/"