2017-08-10 100 views
0

我有一列我想用python訪問的URL。哪些是存儲這些的最佳方式?有〜40個URL和列表是相當恆定的,但我希望能夠更新的完整列表(我有一個刮刀檢查來自某網站的網址目前URL存儲這樣的:存儲和訪問URL

class urlList(object):  
A = 'url1' 
B = 'url2' 
C = 'url3' 

訪問這些都是很簡單的,當你知道這個名字「A」,但我有此腳本檢查

wanted_urls = ['A','C'] 
def urlScrapper(wanted_urls): 
listing = urlList 
temp = [attr for attr in dir(listing) if not callable(getattr(listing, attr)) and not attr.startswith("__")] 
for (wanted_url in wanted_urls): 
    for (url in temp): 
    if (url == wanted_url): 
    url_to_be_used = listing.url 

listing.url自上市以來不起作用沒有這樣的對象。是否有任何其他方式應付這個比寫所有這樣開放:

if (wanted_url == 'A') 
url_to_be_used = listing.A 

此外,如果有更好的方式來存儲這些網址,歡迎提出建議。

回答

2

您可以使用字典是:

urllist = {'A':'url1', 'B':'url2', 'C':'url3'} 

,如果你想訪問某網址,你這樣做:

urllist["A"] 

要獲得所有URL名稱的列表

>>> urllist = {'A':'url1', 'B':'url2', 'C':'url3'} 
>>> urllist.keys() 
['A', 'C', 'B'] 

要獲取所有可用網址的列表:

>>> urllist.values() 
['url1', 'url3', 'url2'] 
>>> 

要添加新的URL,

urllist["D"] = "url4" 
1

@ MedAli的解決方案是非常好的,如果你不想讓你的網址,持久的。我建議你使用TinyDB解決方案來保持你的URL的組織和持久性。

首先,用PIP安裝TinyDB。

然後;

from tinydb import TinyDB, Query 

url_db = TinyDB('/path/to/URLs.json') 
URL = Query() 


url_db.insert({'URLName': 'Foo', 'Address': 'http://foo.bar'}) 
url_db.search(URL.URLName == 'Foo') 

輸出:

[{u'URLName': u'Foo', u'Address': u'http://foo.bar'}] 
+0

似乎是一個不錯的分貝。目前還不能安裝模塊,因此我現在將使用@MedAli的解決方案。 – Pekafu

0

使用字典作爲MedAli建議似乎是一個很好的解決方案:

urllist = {'A':'url1', 'B':'url2', 'C':'url3'} 
temp = urllist.items() 

for (wanted_url in wanted_urls): 
for (url in temp): 
    if (url[0] == wanted_url): 
    url_to_be_used = listing.url[1]