2014-06-28 65 views
0

我使用Python來劃分this webpage。但是當你點擊上一個按鈕時,我無法獲取這些項目。我想用硒來達到這個目標,但是我沒有成功讓它變得沒有頭緒。如何使用python在網頁中刮取表格?

下面我的代碼刮比賽環節:

import urllib2 
import re 

site_url = 'http://us.soccerway.com' 
national_league_div_sub_matches_url = 'http://us.soccerway.com/national/england/premier-league/20132014/regular-season/r21322/' 
national_league_div_sub_matches_url_source = urllib2.urlopen(national_league_div_sub_matches_url).read() 
match_links = re.findall('(/matches/[0-9][0-9][0-9][0-9]/.*?ICID.*?)">', national_league_div_sub_matches_url_source) 
match_links = map(lambda x: ''.join([site_url, x]), match_links) 
for x in match_links: 
    print x 
+0

向我們展示你到目前爲止所擁有的。 –

+0

使用phantomjs與硒 –

+0

幾個月前我嘗試了phantomjs,無法使它工作。如果有問題,我正在窗戶上。 – GiannisIordanou

回答

0

當您在瀏覽器中的JavaScript調用此長url從服務器獲取JSON數據點擊previous - 這樣做。

import requests, json 

url = 'http://us.soccerway.com/a/block_competition_matches_summary?block_id=page_competition_1_block_competition_matches_summary_6&callback_params=%7B%22page%22%3A0%2C%22bookmaker_urls%22%3A%7B%2213%22%3A%5B%7B%22link%22%3A%22http%3A%2F%2Fwww.bet365.com%2Fhome%2F%3Faffiliate%3D365_308124%22%2C%22name%22%3A%22Bet%20365%22%7D%5D%7D%2C%22block_service_id%22%3A%22competition_summary_block_competitionmatchessummary%22%2C%22round_id%22%3A21322%2C%22outgroup%22%3Afalse%2C%22view%22%3A2%7D&action=changePage&params=%7B%22page%22%3A-1%7D' 

r = requests.get(url) 

#print r.text 

data = json.loads(r.text) 

print data 

現在你有dictdata,所以你必須要找到你所需要的。

很可能每次點擊previous在換衣服url所以你必須做同樣的,如果你想獲得舊數據。