2014-03-14 46 views
1

这是我用来从多个URL中提取数据的代码。 不幸的是,我无法让它适用于列表中的多个URL。Python 2.7从json api的多个URL中提取数据

有什么想法?

import urllib 
import re 

urls = ("http://pool.webcoin.us/plt/index.php/?page=api&action=getpoolstatus&api_key=0c57173da8c900831fc111003ea636d5c261e79e76b670f3b51a2d325f9b94db", 
     "http://uno.coin-pool.org/index.php?page=api&action=getpoolstatus&api_key=f20daa5ea5945c1b9641b81d8dd9f4b556153182c03a2a2a94d7a95abc6dc4f8", 
     "http://goat.easy-mining.net/index.php?page=api&action=getpoolstatus&api_key=5d232e86cd1a0cdfdafdcb0722da48c21778d35cd8654f7dbc82202881163df9") 

for url in urls: 

    source = urllib.urlopen(url) 
    regexp = r">(\d+(?:\.\d*)?)<" 
    found = 0 


    for line in source.readlines(): 
     if found: 
      match = re.search(regexp,line) 
      break 
     if "networkdiff" in line: 
      found = 1 



    print match.groups() 
+0

那么为什么不尝试**循环**并分别加载每个网址?是什么让你认为'urllib.urlopen()'会支持列表参数? –

回答

3

试试这个

import urllib 
import re 

urls = ["http://ffc.coinz.pw/index.php?page=statistics&action=pool", 
     "http://pool.webcoin.us/plt/index.php/?page=api&action=getpoolstatus&api_key=0c57173da8c900831fc111003ea636d5c261e79e76b670f3b51a2d325f9b94db", 
     "http://uno.coin-pool.org/index.php?page=api&action=getpoolstatus&api_key=f20daa5ea5945c1b9641b81d8dd9f4b556153182c03a2a2a94d7a95abc6dc4f8", 
     "http://goat.easy-mining.net/index.php?page=api&action=getpoolstatus&api_key=5d232e86cd1a0cdfdafdcb0722da48c21778d35cd8654f7dbc82202881163df9"] 

for url in urls: 
    source = urllib.urlopen(url) 
    regexp = r">(\d+(?:\.\d*)?)<" 
    found = 0 

    for line in source.readlines(): 
     if found: 
      match = re.search(regexp,line) 
      break 
     if "Current Difficulty" in line: 
      found = 1 

     for link in url(x): 
      x += 1 



    print match.groups() 

你必须使用循环每个URL。

+0

它没有工作。它只打印出第一个URL。并非列表中的所有网址。 – Python2014