Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 23, 2013 22:16:16

chuffey
Зарегистрирован: 2013-04-23
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Python + Grab

Доброго времени суток, прошу помощи, пытаюсь парсить страницу

http://kinomax.ru/kirov/schedule.htm
но вот проблема, при парсинге не видит дальше
<div id="mp-films-schedule-list"
не знаю что делать пытался и сохранять страницу и т.п. ничего не помогает.
парсю так
from grab import Grab
g1 = Grab()
g1.go('http://kinomax.ru/kirov/schedule.htm')
print g1.xpath_text('//div[@id="mp-films-schedule-list"]')
ничего не пишет

при попытке указать слегдующий тег на странице выдает ошибку что не найден xpath_text

p.s. точнее до div доходит но он пустой, пробовал парсить и через Beautiful Soup таже проблема
p.p.s Заранее спасибо

Прикреплённый файлы:
attachment 1.PNG (38,5 KБ)

Офлайн

#2 Апрель 24, 2013 06:19:09

plusplus
От:
Зарегистрирован: 2009-01-05
Сообщения: 418
Репутация: +  15  -
Профиль   Отправить e-mail  

Python + Grab

chuffey
p.s. точнее до div доходит но он пустой

Ну дак потому что он пустой :)
<div id="mp-films-schedule-list" class=""></div>



Офлайн

#3 Апрель 24, 2013 10:22:12

chuffey
Зарегистрирован: 2013-04-23
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Python + Grab

В том и проблема , что страница не прогружается полностью. А если открыть в браузере то видно на прикрепленной картинке что он далеко не пустой.
(прошу прощения возможно привел не тот адрес страницы)

http://kinomax.ru/kirov/
если посмотреть через FireBug то видно что данный Div далеко не пустой и содержит в себе все расписание сеансов кинотеатра, но до него никак не могу добраться ( Grab без проблем парсит предыдущие 2 DIV
<div class="filmheader">...</div>
<div class="tabs clearboth">...</div>
без понятия в чем может быть проблема

Офлайн

#4 Апрель 24, 2013 11:17:17

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

Python + Grab

chuffey
Этот div пустой при загрузке страницы.
Потом в него подгружается расписание, например, через ajax.
Вам нужно парсить уже после подгрузки данных расписания.



Офлайн

#5 Апрель 24, 2013 11:26:48

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

Python + Grab

Попробуйте в качестве транспорта для Grab использовать selenium.
Или, если вам нужен только этот кусочек страницы - расписание,- найдите ajax-запрос на странице и шлите прямые запросы по используемому ajax-запросом адресу.



Офлайн

#6 Апрель 24, 2013 14:04:33

chuffey
Зарегистрирован: 2013-04-23
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Python + Grab

Не могу воспользоваться GrabSelenium, на вики написано пользоваться так

from grab import GrabSelenium
g = GrabSelenium()
g.go('http://ixbt.com')
print g.xpath_text('//title')
такого нет, пошарив по папкам внутри grab нашел transport.selenium
сделал так
from grab.transport.selenium import GrabSelenium
g = GrabSelenium()
g.go('http://kinomax.ru/kirov/')
выдает ошибку:
C:\Python27\python.exe C:/Python27/Lib/site-packages/grab-0.4.8-py2.7.egg/grab/transport/selenium.py
Traceback (most recent call last):
  File "C:/Python27/Lib/site-packages/grab-0.4.8-py2.7.egg/grab/transport/selenium.py", line 7, in <module>
    import urllib
  File "C:\Python27\Lib\site-packages\grab-0.4.8-py2.7.egg\grab\transport\urllib.py", line 9, in <module>
    import urllib2
  File "C:\Python27\lib\urllib2.py", line 112, in <module>
    from urllib import (unwrap, unquote, splittype, splithost, quote,
ImportError: cannot import name unwrap
Process finished with exit code 1
как я понимаю ошибка импорта, но библиотека urllib2 стандартная => ошибка где то у меня, но хз где она, Help…
А насчет ajax - запроса ничего для себя внятного не нашел ( да и надо не только расписание а желательно всю страницу иметь под рукой )

Отредактировано chuffey (Апрель 24, 2013 14:06:34)

Офлайн

#7 Апрель 24, 2013 14:38:19

plusplus
От:
Зарегистрирован: 2009-01-05
Сообщения: 418
Репутация: +  15  -
Профиль   Отправить e-mail  

Офлайн

#8 Апрель 24, 2013 18:02:27

chuffey
Зарегистрирован: 2013-04-23
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Python + Grab

plusplus
http://kinomax.ru/index2.php?r=schedule%2Fcinema&id=kirov
огромное спасибо, а еще всеравно расскажите как найти подобное на странице?

Отредактировано chuffey (Апрель 24, 2013 18:20:46)

Офлайн

#9 Апрель 25, 2013 06:32:32

plusplus
От:
Зарегистрирован: 2009-01-05
Сообщения: 418
Репутация: +  15  -
Профиль   Отправить e-mail  

Python + Grab


chuffey
Снифером. Я пользовался плагином httpfox для firefox, просто просмотрел все запросы и нашел нужный. Вроде и в firebug-е чето подобное есть.



Офлайн

#10 Апрель 25, 2013 16:09:11

lorien
От:
Зарегистрирован: 2006-08-20
Сообщения: 755
Репутация: +  37  -
Профиль  

Python + Grab

В хроме есть встроенный сниффер: заходим на нужную страницу, далее жмём Ctrl + J, далее переходим на вкладку network, далее перезагружаем страницу и видим все сделанные браузером сетевые запросы.

Честно говоря, я не знаю, насколько хорошо работает Grab-транспорт для selenium. Вот этот человек пилит потихоньку транспорт для selenium https://bitbucket.org/Deadly0 - вопросы к нему лучше адресовать по этому транспорту.

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version