2016-08-16 11 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' 

私は本当に何であるかを把握することはできません問題。私はドキュメンテーションを読んで、私がオンラインでできるほどのものを探しました。エラーは、おそらく変数originairport_fielddestinationairport_fieldodate_fieldrdate_fieldのいずれかが、adults_fieldが割り当てられているどれも行われていない行する

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行目は、このコード行を参照しているようです。最初の.set()メソッドは 'originairport_field.set(originairport)'です。あなたは 'sess.at_xpath()'メソッドから返されるものと、 'set()'が利用可能な属性であるべきかどうかを二重チェックしましたか? –

答えて

1

チェック:

コードは次のようです。

sessionのところで、rdate_fieldadults_fieldの値を設定した行にはどこから来ていますか?あなたの更新エラー情報から

何かを返すおそらくsess.at_xpath('.//*[@id="acOriginAirport"]')ありえない:そのsess

編集ありえません。

関連する問題