Уведомления

Группа в Telegram: @pythonsu

#1 Май 3, 2011 15:15:20

se111!
От:
Зарегистрирован: 2011-05-03
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

spynner

Пользуется кто нибудь?
У меня так и не получилось перейти с его помощью по ссылке, передав при этом куки.
Во всех примерах у ссылки есть id…:)



Офлайн

#2 Май 6, 2011 03:43:12

sypper-pit
От: Ulan-Ude(msk)
Зарегистрирован: 2009-01-30
Сообщения: 1102
Репутация: +  6  -
Профиль   Отправить e-mail  

spynner

можно по подробнее узнать какие действия надо выполнить , вообще есть urllib2 который может куки помнить

Офлайн

#3 Май 23, 2011 18:54:42

se111!
От:
Зарегистрирован: 2011-05-03
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

spynner

Ну вроде спиннер - готовый эмулятop браузера - github.com/kiorky/spynner. Но тут образовалась проблема - питон первый раз вижу, весь опыт кодинга немного пхп:( Помучал немного и разобраться нормально не смог. Тестовая задача была просто проитись по любой хтмл страничке и нажать пару ссылок рандомных. Запускался под эмулятором иксов. В общем не понятно как сделать browser.select перед кликом, если самой ссылке не присвоен id.



Офлайн

#4 Май 24, 2011 22:31:41

ofigetitelno
От:
Зарегистрирован: 2006-08-01
Сообщения: 136
Репутация: +  0  -
Профиль   Отправить e-mail  

spynner

:)
ссылку можно получить через css селектор или через xpath селектор…
примерно так:

import spynner
import time

def xpath_prepare(xpath):
return xpath.replace('x:', '')\
.replace('"', '\'')

b = spynner.Browser()
b.create_webview()
b.show()
b.load('http://python.su')
js1 = '''(function () {
var element = (function () {
var value = document.evaluate("%s", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue
return value
})()
if (element)
return _jQuery(element).attr('id', 'mega_id').attr('id')
})()'''
js2 = '''(function () {
return _jQuery("%s").attr('id', 'mega_id').attr('id')
})()'''
xpath = "id('News')/x:span[2]/x:ul[1]/x:li[1]/x:a"
css = "#content > p.line867 > a"
href = b.runjs(js1 % xpath_prepare(xpath)).toString()
b.click_link('#'+href, 60)
time.sleep(5)
href = b.runjs(js2 % css).toString()
b.click_link('#'+href, 60)
time.sleep(5)



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version