我想湊線走勢來源:http://scores.covers.com/football-scores-matchups.aspx發送POST請求AJAX與Python3.4和urllib的
我需要通過使用提供的日曆的每個季節和周迭代:
當我檢查在網絡上看到是越來越送什麼,我看到兩個POST請求時,我改變季節:
(我結合上述3個圖像變成1,因爲我沒有足夠的代表處發佈1個多圖)
http://s29.postimg.org/773muclra/covers_scrape4.jpg
我一整天都在搜索和閱讀並破解它,並沒有取得任何進展。如果我編輯有效載荷爲意外事件,我可以重新創建使用Firebug編輯和重新發送發佈請求的錯誤。所以我有一種感覺,問題在於我編碼和發送數據的方式。我已經嘗試了json.dump,utf-8,Content-Type application/x-www ...,在我能想到的每個組合中都有。
我當前的代碼如下:
import urllib.request
import json
import urllib.parse
class Scraper():
def __init__(self):
pass
def scrape(self):
url = 'http://scores.covers.com/ajax/SportsDirect.Controls.LiveScoresControls.ScoresCalendar,SportsDirect.Controls.LiveScoresControls.ashx?_method=changeDay&_session=no'
data = {
'league': '1',
'SeasonString': '2012-2013',
'Year': '1',
'Month': '1',
'Day': '1'
}
# data = urllib.parse.urlencode(data).encode('utf-8')
data = json.dumps(data).encode('utf-8')
headers = {
'Host': 'scores.covers.com',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:32.0) Gecko/20100101 Firefox/32.0',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language': 'en-US,en;q=0.5',
'Accept-Encoding': 'gzip, deflate',
'Referer': 'http://scores.covers.com/football-scores-matchups.aspx',
'Content-Type': 'application/json',
'Connection': 'keep-alive',
'Pragma': 'no-cache',
'Cache-Control': 'no-cache'
}
req = urllib.request.Request(url)
req.data = data
req.headers = headers
f = urllib.request.urlopen(req)
print(f.read())
return f
其中給出:提前
In [1]: import scraper
In [2]: s = scraper.Scraper()
In [3]: s.scrape()
b"new Object();r.error = new ajax_error('System.ArgumentException','Object of type \\'System.DBNull\\' cannot be convert
ed to type \\'System.String\\'.',0)"
Out[3]: <http.client.HTTPResponse at 0x4d6b650>
感謝。
謝謝!這正是問題所在。 – 2014-09-26 19:09:28