Найти - Пользователи
Полная версия: Парсинг lostfilm_tv
Начало » Python для новичков » Парсинг lostfilm_tv
1
nauman
Решил автоматизировать закачку любимых сериалов, но уперся в проблему закачки страницы.
В общем код:
from grab import Grab
from grab.tools.logs import default_logging
from grab.tools import rex
import re
default_logging('/home/user/webgrab/my_log.txt')
g = Grab(log_file='/home/user/webgrab/grab.txt')
g.go('http://www.lostfilm.tv/rssdd.xml')
f=open('/home/user/webgrab/grab.txt').read()
links = rex.rex_text_list(f, '<link>(http:.+?720p.+?\.torrent)<\/link>')
# Тут все гуд, на выходе получаем ссылки типа:
# http://lostfilm.tv/download.php?id=4668&Castle.S04E20.720p.rus.LostFilm.TV.torrent
# и это не торрент файл, а html страница.
g2 = Grab(log_dir='/home/user/webgrab/', log_file='/home/user/webgrab/grab2.txt', nobody=False, hammer_mode=True, debug_post=True)
g2.setup(reuse_cookies=True, userpwd='my_user_name:my_password', charset='windows-1251')
my_url=links[0]
g2.go('my_url)
И тут облом, программа завершается без ошибок, но файл ‘grab2.txt’, пуст, т.е. страница не закачалась.
Если скопипастить "http://lostfilm.tv/download.php?id=4668&Castle.S04E20.720p.rus.LostFilm.TV.torrent" и вствить в веб броузер, то в нем страница отображается.
Ссылки типа 'http://lostfilm.tv/download.php?id=4668&Castle.S04E20.720p.rus.LostFilm.TV.html' и
'http://lostfilm.tv/download.php?id=4668' ведут на одну и туже страницу, но не качаются моим скриптом. Пробовал закачивать wget-ом, тот же результат. Эта страница также должна закачиваться без аунтификации.
Какие будут предложения, мысли. Если можно, то на конкретном примере. Спасибо.
На всякий случай привожу логфайл:

Request:
GET /download.php?id=4668 HTTP/1.1
Authorization: Basic bmF1bWFнQHfrci5uZXQ6cаd3dkxmSHlDTg==
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
Host: lostfilm.tv
Accept-Encoding: gzip
Referer: http://lostfilm.tv
Accept-Charset: utf-8,windows-1251;q=0.7,*;q=0.5
Accept-Language: en-us,en;q=0.8
Keep-Alive: 300
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.2


Response:
HTTP/1.1 200 OK
Server: nginx
Date: Wed, 11 Apr 2012 11:32:48 GMT
Content-Type: text/html; charset=windows-1251
Transfer-Encoding: chunked
Connection: keep-alive
Keep-Alive: timeout=10
Vary: Accept-Encoding
X-Powered-By: PHP/5.3.10
Refresh: 0; url=/details.php?id=4668
Content-Encoding: gzip

plusplus
nauman
Response:
HTTP/1.1 200 OK
Server: nginx
Date: Wed, 11 Apr 2012 11:32:48 GMT
Content-Type: text/html; charset=windows-1251
Transfer-Encoding: chunked
Connection: keep-alive
Keep-Alive: timeout=10
Vary: Accept-Encoding
X-Powered-By: PHP/5.3.10
Refresh: 0; url=/details.php?id=4668
Content-Encoding: gzip

Парси эту строчку вручную из заголовков и переходи по ней.
nauman
plusplus
Парси эту строчку вручную из заголовков и переходи по ней.
http://lostfilm.tv/download.php?id=4668, пробовал вручную эффект тотже, страница в текстовый файл не загружается.
Нашел на просторах интеренета webkit:

import gtk, webkit
window = gtk.Window()
view = webkit.WebView()
addr='http://lostfilm.tv/download.php?id=4668&Castle.S04E20.720p.rus.LostFilm.TV.torrent'
view.open(addr)
window.add(view)
window.show_all()
window.connect('delete-event', lambda window, event: gtk.main_quit())
gtk.main()

Как вывести содержимое в текстовый файл вместо графического отображения в окне?
plusplus
nauman
plusplus
Парси эту строчку вручную из заголовков и переходи по ней.
http://lostfilm.tv/download.php?id=4668, пробовал вручную эффект тотже, страница в текстовый файл не

Ну download.php?id=4668 тоже редиректит на details.php.

g = Grab()
url = "http://lostfilm.tv/details.php?id=4668"
g.go(url)
print g.response.body

Всё работает.
nauman
Вы правы, если через print, то работает. Через log_file не работает.
Сдедующий затык, грубо говоря, ссылка на всплывающее окно, джава скрипт, с которого можно скачать торрент: <a href="javascript:{}
Вот тут наверное понадобится загрузка через webkit. Как можно сделать вывод в файл, вместо графического отображения?
Спасибо.
aliens
nauman
запустите какой-нибудь firebug или webkit developer tools (в хроме) и посмотрите, куда, какие запросы шлются. Javascript наверняка ходит по известному урлу и отсылает какие-то данные со страницы, которые вы также можете достать и отправить
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