Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 31, 2010 02:09:14

asilyator
От:
Зарегистрирован: 2010-10-24
Сообщения: 276
Репутация: +  -2  -
Профиль   Отправить e-mail  

Глючный BeautifulSoup

http://www.wcg.com/6th/replay/replay_list_2010.asp?dbcodeno=0&evtno=2010&itemno=G100308101&natno=0&entryno=0
1. Вонючий beautifulsoup отказывался парсить, пока не заменил все ' на ".
2.

>>> [tag.name for tag in soup.html.body.table.tr.td.table.findAll(recursive=False)]
[u'tr', u'tr']
Какого хрена он находит только 2, если их там over 9000?



Офлайн

#2 Окт. 31, 2010 11:54:48

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Глючный BeautifulSoup

Не используйте старый BeautifulSoup. Возьмите html5lib с деревом lxml и ищете что вам нужно через xpath.

PS: И вроде tr там только 43



Офлайн

#3 Окт. 31, 2010 13:23:46

asilyator
От:
Зарегистрирован: 2010-10-24
Сообщения: 276
Репутация: +  -2  -
Профиль   Отправить e-mail  

Глючный BeautifulSoup

А через lxml можно это сделать?

Конкретный пример кода привести можешь (ничего, что я на ты? :))?



Офлайн

#4 Окт. 31, 2010 13:25:37

asilyator
От:
Зарегистрирован: 2010-10-24
Сообщения: 276
Репутация: +  -2  -
Профиль   Отправить e-mail  

Глючный BeautifulSoup

Daevaorn
PS: И вроде tr там только 43
Интересно, ты это руками подсчитал, или как?



Офлайн

#5 Окт. 31, 2010 13:35:49

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Глючный BeautifulSoup

asilyator
Конкретный пример кода привести можешь (ничего, что я на ты? :))?
А где “пожалуйста”?

import html5lib
from urllib2 import urlopen

res = html5lib.parse(urlopen('http://www.wcg.com/6th/replay/replay_list_2010.asp?dbcodeno=0&evtno=2010&itemno=G100308101&natno=0&entryno=0'),
treebuilder='lxml', namespaceHTMLElements=False)

trs = res.xpath('//body/table/tbody/tr/td/table/tbody/tr')
asilyator
Интересно, ты это руками подсчитал, или как?
Скрипт сказал.



Офлайн

#6 Окт. 31, 2010 13:42:36

asilyator
От:
Зарегистрирован: 2010-10-24
Сообщения: 276
Репутация: +  -2  -
Профиль   Отправить e-mail  

Глючный BeautifulSoup

Вот мне ж и интересно - скрипт написать, чтобы посчитать невпадлу было, а выложить - нини.

Теперь спасибо.

P.S. За то время, что я с парсерами трахался, я бы уже руками это распарсил.



Отредактировано (Окт. 31, 2010 13:43:35)

Офлайн

#7 Окт. 31, 2010 13:51:39

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Глючный BeautifulSoup

asilyator
Вот мне ж и интересно - скрипт написать, чтобы посчитать невпадлу было, а выложить - нини.
Тут не кодогенератор бесплатный.

Я могу писать какие-угодно скрипты и при этом не должен их выкладывать. А если выложил, то считай , у тебя сегодня счастливый день. Сходи в церковь, свечку поставь.

asilyator
P.S. За то время, что я с парсерами трахался, я бы уже руками это распарсил.
А не надо с ними было этим заниматься. Надо просто было подумать и написать. Ну я конечно понимаю, что, наверно, этот процесс менее интересен некоторым…



Офлайн

#8 Окт. 31, 2010 14:03:56

asilyator
От:
Зарегистрирован: 2010-10-24
Сообщения: 276
Репутация: +  -2  -
Профиль   Отправить e-mail  

Глючный BeautifulSoup

Daevaorn
asilyator
Вот мне ж и интересно - скрипт написать, чтобы посчитать невпадлу было, а выложить - нини.
Тут не кодогенератор бесплатный.

Я могу писать какие-угодно скрипты и при этом не должен их выкладывать. А если выложил, то считай , у тебя сегодня счастливый день. Сходи в церковь, свечку поставь.
Нет, ну если впадлу писать - это одно. Но не полениться ж написать, а потом сидеть и смотреть, как другой трахается… Интересно, а чего ты ожидал? Оплата все равно не подразумевалась.

Свечку врач поставит. Если уговоришь, то и в церкви.

Daevaorn
asilyator
P.S. За то время, что я с парсерами трахался, я бы уже руками это распарсил.
А не надо с ними было этим заниматься. Надо просто было подумать и написать. Ну я конечно понимаю, что, наверно, этот процесс менее интересен некоторым…
Просто я в питоне не профи. Я на нем пишу мелкие проги для работы с сокетами и текстом, которые на нем или перле писать быстрее, чем на яве. Из этого я сделал (наверно, неправильный) вывод, что парсить html на нем тоже будет проще.
Выходи иногда из уютного мирка, тогда узнаешь, что незнание сторонних модулей питона не равнозначно отстутствию мозгов. Кстати, а почему раздел называется “Python для новичков”? Может, стоит быть попроще?



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version