Найти - Пользователи
Полная версия: Парсинг HTML
Начало » Python для новичков » Парсинг HTML
1 2
PryGuy
Туплю. Почему ничего не находит?
import html5lib, urllib2
from html5lib import treebuilders
from lxml.html import fromstring
from lxml import etree

url = urllib2.Request('http://www.yandex.ru')
url.add_header('User-Agent', 'Mozilla/5.0 (X11; U; Linux x86_64; ru; rv:1.9.2.3) Gecko/20100423 Ubuntu/10.04 (lucid) Firefox/3.6.3')
content = urllib2.urlopen(url).read()

parser = html5lib.HTMLParser(tree=treebuilders.getTreeBuilder("lxml"))
doc = parser.parse(content)

#print(doc.xpath("//text()"))
print(doc.find("//p"))
И в какой это он кодировке кстати обрабатывает данные?
Александр Кошелев
PryGuy
Почему ничего не находит?
Скорей всего надо указать неймспейс для элемента “p” в выражении.
PryGuy
И в какой это он кодировке кстати обрабатывает данные?
В которой страница.
qwer
Beautifulsoup
Ray
qwer
+1
Beautiful Soup Просто замечательная вещь, очень рекомендую.
Вот она:
http://www.crummy.com/software/BeautifulSoup
Вот, кстати, еще на русский дока переведена.
http://clck.ru/0p1o
Александр Кошелев
Beautifulsoup уже не торт – часто ломается на некоторых сайтах.

html5lib реализует референсный парсер html5. Который уже с недавних пор использует Firefox.
jarens
А у меня следующая задача. Мне нужно пропарсить несколько постов в LiveJournal и собрать оттуда юзернеймы всех, кто оставлял комментарии. В идеале - с количеством комментариев у каждого, но это пока далёкое будущее.

Код в ЖЖ выглядит следующим образом:
<a href="http://USERNAME.livejournal.com/">
<b>USERNAME</b>
</a>
Ковырялся с BeautifulSoup. Получилось следующее:

from BeautifulSoup import BeautifulSoup
import urllib2
import re
page = urllib2.urlopen("http://od-group.livejournal.com/23659.html")
soup = BeautifulSoup(page)
ljuser = soup.findAll('a') # нашёл вообще все ссылки
soup.findAll('a', '*.livejournal.com') # выдал []
soup.findAll("a", { "href" : "*.livejournal.com"}) # выдал []
soup.findAll("span", { "lj:user" : "True"}) # выдал []
soup.findAll(href=re.compile('http://*.livejournal.com')) # выдал []
C Python не знаком вообще. Разбирался только с документацией к BeautifulSoup.
pyuser
да Python тут вобщем-то и не причем :) тут XPATH
в пятнадцатом посте Вам правильно сказали: фтопку BeautifulSoup. пользуйтесь html5lib + lxml
строка поиска будет выглядеть примерно так: './/a' (не проверял :()
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB