Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 19, 2010 13:41:11

sandric
От:
Зарегистрирован: 2010-02-19
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

скраппер kinopoisk

Привет я пытаюсь написать скрипт для парсинга инфы о фильмах используя кинопоиск и imdb. Не работает кинопоиск, а именно после захода на любую страницу почему то редиректит на главную страницу. Код предельно прост:

class Parser:

domainName = ""

def __init__(self, domainName):

self.domainName = domainName


def openURL(self, url):
req_str = 'http://www.' + self.domainName + '/' + url + '/'
print req_str
req = urllib2.Request(req_str)
req.add_header('User-Agent', 'Chrome')
f = urllib2.urlopen(req)
return f.read()

if __name__ == "__main__":

myParser = Parser('kinopoisk.ru/level/1/film')

page = myParser.openURL('300')
print page
Кто знает в чем у меня ошибка отпишитесь плз.



Отредактировано (Фев. 19, 2010 13:42:05)

Офлайн

#2 Фев. 19, 2010 14:26:05

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

скраппер kinopoisk

Прежде, чем задавать вопрос, следует пользоваться поиском.
Проблема уже обсуждалась
http://python.su/forum/viewtopic.php?id=4888

Офлайн

#3 Фев. 20, 2010 14:17:23

sandric
От:
Зарегистрирован: 2010-02-19
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

скраппер kinopoisk

Прежде, чем задавать вопрос, следует пользоваться поиском.
Проблема уже обсуждалась
http://python.su/forum/viewtopic.php?id=4888
Вообщето нет. В той теме проблема была с ошибкой 302 и тем, что сайт редиректил сам на себя, пока питон не выводил ошибку. У меня же ошибки не выводиться - скрипт такой же как и в результате решения той темы, просто я перехожу не на страницу с каким то фильмом, а на главную.



Офлайн

#4 Фев. 20, 2010 15:18:17

truporez
От:
Зарегистрирован: 2009-05-08
Сообщения: 266
Репутация: +  6  -
Профиль   Адрес электронной почты  

скраппер kinopoisk

1. попробуйте прикрутить urllib2.HTTPRedirectHandler()
2. передавайте больше информации о браузере в заголовках, нормальный useragent, accept. посмотрите, что шлет ваш браузер в заголовках.
3. посмотрите как читает страницы mechanize, spynner.



Офлайн

#5 Фев. 21, 2010 02:58:33

dimabest
От:
Зарегистрирован: 2009-02-12
Сообщения: 253
Репутация: +  0  -
Профиль   Отправить e-mail  

скраппер kinopoisk

sandric
Вообще-то нет. В той теме проблема была с ошибкой 302 и тем, что сайт редиректил сам на себя, пока питон не выводил ошибку. У меня же ошибки не выводиться - скрипт такой же как и в результате решения той темы, просто я перехожу не на страницу с каким то фильмом, а на главную.
мдее…

302 - это не ошибка, это один из статус кодов, возвращаемый веб-сервером. 302 говорит что надо перейти на страницу указанную в HTTP-заголовке “Location”. 404 - страница не найдена. 200 - все ок, принимай данные.

Твоя проблема очевидна - кинопоиск редиректит тебя на главную страницу, причем по той же причине что и выше указанном топике.

Заголовки надо передавать!

Какие? Узнать очень просто - ставишь дополнение к мозилле, например “Tamper data” (https://addons.mozilla.org/ru/firefox/addon/966), затем заходишь на любой сайт - и копируешь в свою программу заголовк-значение, которые там увидишь.

ps: для кинопоиска достаточно двух - “User-Agent” и “Accept”. Без первого тебя отправят в вечный редирект кодом 302, а без второго просто перенаправят на главную страницу.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version