Найти - Пользователи
Полная версия: Кэширование страниц (lxml)
Начало » Python для экспертов » Кэширование страниц (lxml)
1 2
Razor
Прошу прощения, я просто неверно выразился видимо. Страница, разумеется, генерируется. Но данные, соответствующие странице, новые. Скорее, много данных, а не страниц. Но как вытащить то эти данные?

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

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

Ссылка меняется каждый раз
o7412369815963
Вот пример для быстрого “выкусывания”
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
Razor
Прирост скорости значительный? Быстрое выкусывание - это быстрое написание или быстрый парсинг?

Я искал самый быстрый парсер, и им был lxml. Обработка примерно 0.5-1 секунда на страницу. Сравнить не с чем, не знаю, насколько это быстро.
o7412369815963
Razor
Прирост скорости значительный? Быстрое выкусывание - это быстрое написание или быстрый парсинг?
Написал за пару минут.
Замерил, в одном потоке обрабатывает 220 страниц в секунду (у меня на ноуте).
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