2016-08-16 5 views
1

Я пытаюсь отправить форму и получить некоторые данные с dryscrape, но когда я выполнить программу, я получаю ошибку:Dryscrape Форма и соскабливания Выпуск

Traceback (most recent call last): 
    File "easyjettest.py", line 22, in <module> 
    originairport_field.set(originairport) 
AttributeError: 'NoneType' object has no attribute 'set' 

Я действительно не могу понять, что проблема. Я читал документацию и искал столько, сколько мог в Интернете.

Код следующее:

import dryscrape 
import sys 

if 'linux' in sys.platform: 
    # start xvfb in case no X is running. Make sure xvfb 
    # is installed, otherwise this won't work! 
    dryscrape.start_xvfb() 

originairport = 'Cyprus (Larnaca) LCA' 
destinationairport = 'London Gatwick LGW' 
odate = '16/08/2016' 
adate = '18/08/2016' 
adults = '1' 

sess = dryscrape.Session(base_url = 'http://www.easyjet.com/en/') 

sess.set_attribute('auto_load_images', False) 

sess.visit('/') 

originairport_field = sess.at_xpath('.//*[@id="acOriginAirport"]') 
originairport_field.set(originairport) 
destinationairport_field = sess.at_xpath('.//*   [@id="acDestinationAirport"]') 
destinationairport_field.set(destinationairport) 
odate_field = sess.at_xpath('.//*[@id="oDate"]') 
odate_field.set(odate) 
rdate_field = session.at_xpath('.//*[@id="rDate"]') 
rdate_field.set(rdate) 
adults_field = session.at_xpath('.//*[@id="numberOfAdults"]') 
adults_field.set(adults) 
originairport_field.form().submit() 

# extract all links 
for link in session.xpath('//a[@href]'): 
    print link['href'] 
+0

Измените свой заголовок, чтобы с самого начала было ясно, о чём ваш вопрос. Ваш заголовок слишком общий – user919426

+0

Строка 22 в callstack, похоже, относится к этой строке кода, первая с методом .set(): 'originairport_field.set (originairport)'. Вы дважды проверили, что возвращается из метода 'sess.at_xpath()' и должен ли 'set()' быть доступным атрибутом? –

ответ

1

Проверить в какой строке ошибка не происходит, вероятно, любой из переменных originairport_field, destinationairport_field, odate_field, rdate_field, adults_field назначен ни один.

Кстати, откуда находится session в строках, в которых вы установили значения rdate_field и adults_field? разве, что sess

Edit:

С обновленной информации об ошибке, вероятно sess.at_xpath('.//*[@id="acOriginAirport"]') разве что-нибудь возвращение.

Смежные вопросы