import re
fishlength = re.compile("max length : ([\d.]+) ([cm]{1,2})", re.I).search
def get_length_in_cm(html):
m = fishlength(html)
if m: # match found
value = float(m.group(1))
unit = m.group(2)
if unit == "cm":
return value
elif unit == "m":
return value * 100.
else:
raise ValueError("Unknown unit: {}".format(unit))
else:
raise ValueError("Length not found")
看起来你可以直接从属和种生成url,即
虹鳟(oncorhynchus mykiss)变成
所以有点像
^{pr2}$从页面源代码来看,html是非常不敏感的;虽然用正则表达式解析html是邪恶和可怕的,但我真的认为这是这种情况下最简单的方法:
然后抓住每一页
^{4}$因此,为了在其他web应用程序中使用这些信息,您需要使用API来获取它们的数据。在
在鱼基地.ca(or.org)没有官方的面向公众的API。有一些关于创建restfulapi的chat in 2013,这正是您所需要的,但这还没有发生(不要屏住呼吸)。在
另一种方法是使用需要查找的鱼的名称,将其放入URI中(例如www.fishbase.ca/fish/Rainbow+鳟鱼)然后使用Xquery或类似工具深入DOM以找到最大长度。在
不幸的是,fishbase也没有这种方法所需的URI,this是彩虹鳟鱼的URI-使用ID而不是名称来轻松查找。在
我建议寻找另一个数据提供者来寻找这两个api中的任何一个。在
关于第二种方法:网站所有者可能不会通知你以这种方式使用他们的网站。如果可以的话,事先问问他们。在
相关问题 更多 >
编程相关推荐