Pull to refresh

Comments 9

Спасибо за статью. Просто любопытно, какие вы сделали выводы из анализа данных, со спортивной точки зрения? Ну, как чаще побеждают? Коленки ломают или удушающим? :)
Я как раз сейчас пишу статью на эту тему. Пока могу сказать, что из сабмишенов чаще всего делают удушение сзади, рычаг руки, гильотну и треугольник. Среди нокаутов большее число от ударов руками. Если будет интересно могу прислать ссылку на статью. Т.к. на хабре, наверное нет смысла ее выкладывать, т.к. она не имеет отношения к IT.
Для питона есть отличная либа — BeautifulSoup. Простой пример — есть магазин, в нем товары находятся в div'ах с классом «product». Внутри div'a таблица с img и td с классами «name» и «id» для названия товара и его ID. Чтобы пройтись по всем div'ам достаточно лишь:
soup = BeautifulSoup(page) # page - скачиваем страницу и отдаем ее
for item in soup.findAll("div", {"class": "product"}):
    img = item.find("img")["src"]
    name = soup.find("tr", {"class": "name"}) 
    id = soup.find("tr", {"class": "id"})
Тоже самое можно сделать и на lxml. Если страница хорошо сверстана и у элементов есть атрибуты типа, class, id и т.д. BeautifulSoup насколько я знаю используется в pandas для функции read_html(), которая тоже может парсить страницы.
tree = etree.HTML(html)
for block in tree.xpath("//div[@class='product']"):
    img = block.xpath("//img/@src")[0]
    name = block.xpath("//tr[@class='name']")[0].text
    id = block.xpath("//tr[@class='id']")[0].text
Спасибо за пример. Очень помогло!
Для парсинга сайтов лучше использовать специализированные библиотеки, например Grab. В ней, кроме собственно парсинга (xpath- и css-методы), есть много плюшек, заточенных под быстрый обход сайта и упрощение построение запросов: многопоточность, куки, асинхронность и т.д.
Поработаю некропостером, и скажу, что я пришел на эту статью, чтобы разобраться с lxml, как и советует докуменатция Grab'а. Круг замкнулся.
Спустя два года дам новый совет — попробуйте PySpider — очень мощный инструмент. Для работы с HTML там можно использовать несколько инструментов — по вкусу, по удобству.
Sign up to leave a comment.

Articles