存储和访问URL
问题描述:
我有一列我想用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
此外,如果有更好的方式来存储这些网址,欢迎提出建议。
答
您可以使用字典是:
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"
答
@ 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'}]
答
使用字典作为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]
似乎是一个不错的分贝。目前还不能安装模块,因此我现在将使用@MedAli的解决方案。 – Pekafu