Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 27, 2013 19:36:12

Razor
Зарегистрирован: 2012-09-11
Сообщения: 127
Репутация: +  2  -
Профиль   Отправить e-mail  

Кэширование страниц (lxml)

Прошу прощения, я просто неверно выразился видимо. Страница, разумеется, генерируется. Но данные, соответствующие странице, новые. Скорее, много данных, а не страниц. Но как вытащить то эти данные?

Мне показать код или что?

Отредактировано Razor (Дек. 27, 2013 19:36:53)

Офлайн

#2 Дек. 27, 2013 19:45:47

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Кэширование страниц (lxml)

Razor
Страница, разумеется, генерируется. Но данные, соответствующие странице, новые
Если у Вас есть один адрес, www.foo.bar и страница, которую Вы получаете по этому адресу обновляется, то возникает вопрос о периодичности этого обновления - никакой сайт не обновляется пять раз в секунду.
Или у Вас есть адрес типа "http://python.su/forum/topic/23139/?page=2" с неким изменяемым параметром в зависимости от которого получаются разные данные - это другой вопрос. У Вас как?



Офлайн

#3 Дек. 27, 2013 20:50:20

Razor
Зарегистрирован: 2012-09-11
Сообщения: 127
Репутация: +  2  -
Профиль   Отправить e-mail  

Кэширование страниц (lxml)

Алгоритм работы парсера (вкратце):

try:
    for number_page in range(10): # количество_страниц_для_парсинга
        # вставляем number_page в линк
        html = urlopen('http://toster.ru/q/{0}'.format(number_page) 
        # читаем значения со страницы
        # записываем в базу данных
except Ошибка 404:
     # записываем i в черный список

Ссылка меняется каждый раз

Отредактировано Razor (Дек. 27, 2013 20:53:41)

Офлайн

#4 Дек. 28, 2013 00:18:24

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Кэширование страниц (lxml)

Вот пример для быстрого “выкусывания”

from urllib import urlopen
from htmlcut import xget
html = urlopen('http://toster.ru/questions/latest?page=1').read()
for d in xget(html, 'div@class="info"', True):
	print xget(d, 'div@class="views"'), ':::',
	print xget(d, 'div@class="title"|a')
Результат:
5 ::: 127.0.0.1 или localhost, что же это такое?
11 ::: Что делать с новой ps3?
12 ::: Как узнать PID на Amazon Kindle для Android?
48 ::: Логотип Android (робот), право на использование в рекламном объявлении
110 ::: Какие браузеры учитывать при разработке сайта?
12 ::: L2TP-трафик с клиента Windows через NAT
46 ::: Как совместить изучение иностранных языков и языков программирования?
46 ::: Кроссплатформенное приложение + web сервис + синхронизация баз этого всего. На чем все это писать?
101 ::: Что такое синий кружок на иконке iPad2?
44 ::: Как правильно настроить гем mina?
37 ::: Мобильные приложения складывают свои данные в папку Dropbox/Приложения. Как поменять на Dropbox/Apps?
19 ::: Можно ли как то измерить ультрофиолет, который пропускает стекло?
127 ::: Как производится отправка почты с подменой цифровых данных?
126 ::: SSH-туннели в разных уголках мира
62 ::: Подойдет ли GPL3 для моего проекта?
40 ::: Переносной сканер документов с функцией GPRS
38 ::: Маршрутизация в OpenVPN между локальными сетями (Win)
197 ::: Текст через запятую в массив
207 ::: Как сделать domain.com/ИМЯ.ПОЛЬЗОВАТЕЛЯ как вконтакте, ютуб и тд?
66 ::: Вопрос по архитектуре с вложенными Collection, View
Самопал работает на регепсах, брать тут: https://bitbucket.org/lega911/htmlcut

Отредактировано o7412369815963 (Дек. 28, 2013 00:18:48)

Офлайн

#5 Дек. 28, 2013 10:26:15

Razor
Зарегистрирован: 2012-09-11
Сообщения: 127
Репутация: +  2  -
Профиль   Отправить e-mail  

Кэширование страниц (lxml)

Прирост скорости значительный? Быстрое выкусывание - это быстрое написание или быстрый парсинг?

Я искал самый быстрый парсер, и им был lxml. Обработка примерно 0.5-1 секунда на страницу. Сравнить не с чем, не знаю, насколько это быстро.

Отредактировано Razor (Дек. 28, 2013 10:34:16)

Офлайн

#6 Дек. 28, 2013 15:28:13

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Кэширование страниц (lxml)

Razor
Прирост скорости значительный? Быстрое выкусывание - это быстрое написание или быстрый парсинг?
Написал за пару минут.
Замерил, в одном потоке обрабатывает 220 страниц в секунду (у меня на ноуте).

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version