2017-08-10 8 views
0

私はPythonでアクセスしたいURLのリストを持っています。それらを保存する最も良い方法はどれですか?そこ〜40のURLがあると、リストはかなり一定であるが、私は完全なリストを更新できるようにしたいと思います(私は、特定のWebサイトからそれらの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 

また、これらのURLを保存するためのより良い方法がある場合は、歓迎します。

答えて

2

あなたはそのための辞書を使用することができます。

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

あなたがAのURLにアクセスしたい場合、あなたは:

urllist["A"] 

すべてのURL名

のリストを取得するには
>>> urllist = {'A':'url1', 'B':'url2', 'C':'url3'} 
>>> urllist.keys() 
['A', 'C', 'B'] 

利用可能なすべてのURLのリストを取得するには:

新しいURLを追加するには
>>> urllist.values() 
['url1', 'url3', 'url2'] 
>>> 

あなたのURLを永続化したくない場合は、MedAliのソリューション@

urllist["D"] = "url4" 
1

は本当にいいです。私はあなたのURLを整理して永続的に保つために、TinyDBソリューションを使用することをお勧めします。

まず、TinyDBをPIPでインストールします。

次に、

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] 
関連する問題