0

私が抱えており、Python で解決しようとしている問題は、Web サイト (具体的には、http://demo.travelportuniversalapi.comにある API の無料オンライン デモ) に対して連続して POST 要求を行う (オンライン フォームに入力する) ことです。これまでのところ、結果ページを取得できません — これで 2 日間経過しました。

私が採用しているコードは次のとおりです。

import sys
import urllib, urllib2, cookielib
from BeautifulSoup import BeautifulSoup
import re

class website:
    def __init__(self):
        self.host = 'demo.travelportuniversalapi.com'
        self.ua = 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:23.0) Gecko/20100101 Firefox/23.0'  
        self.session = cookielib.CookieJar() #session devine o instanta a obiectului cookielib
        pass     

    def get(self):
        try:
            url = 'http://demo.travelportuniversalapi.com/(S(cexfuhghvlzyzx5n0ysesra1))/Search' #this varies every 20 minutes
            data = None
            headers = {'User-Agent': self.ua}
            request = urllib2.Request(url, data, headers)
            self.session.add_cookie_header(request)
            response = urllib2.urlopen(request)
            self.session.extract_cookies(response, request)
            url = response.geturl()


            data = {'From': 'lhr', 'To': 'ams', 'Departure' : '9/4/2013','Return' : '9/6/2013'}
            headers = {'User-Agent': self.ua, "Content-type": "application/x-www-form-urlencoded; charset=UTF-8",
                       }            
            request = urllib2.Request(url, urllib.urlencode(data), headers, 20)
            self.session.add_cookie_header(request)
            response = urllib2.urlopen(request, timeout=30) #HTTP Error 404: Not Found - aici am eroare
            self.session.extract_cookies(response, request)                
        except urllib2.URLError as e:
            print >> sys.stderr, e
            return None

rt = website()
rt.get()

最後に表示されるurllib2.Requestエラーは HTTP Error 404: Not Found です。Cookie が機能しているかどうかわかりません。

ブラウザでアドオンを使用して HTTP パケットを監視する POST がブラウザで送信されると、次のヘッダーに気付きました: 'X-Requested-With XMLHttpRequest' — これは関係ありますか?

4

0 に答える 0