我正在开展一个项目,从州的餐馆检查报告中提取细节。每次检查都有自己的网址。我能够将值收集到字典中,但一次只返回一个。在对函数的调用中,如果我没有指定特定的库条目,我会收到一个错误:''list'对象没有属性'timeout''如果它要求特定的条目,我得到一个好的回报。我怎么能得到它们呢?
# loop through the url list to gather inspection details
detailsLib = {}
def get_inspect_detail(urlList):
html = urlopen(urlList)
soup = bs4.BeautifulSoup(html.read(), 'lxml')
details = soup.find_all('font', {'face': 'verdana'})[10:]
result = []
for detail in details:
siteName = details[0].text
licNum = details[2].text
siteRank = details[4].text
detailsLib = {
'Restaurant': siteName,
'License': licNum,
'Rank': siteRank,
}
result.append(detailsLib)
return result
get_inspect_detail(urlList[21])
所以我可以在名单上找到第21家餐厅,重复36次,但不是全部。 另一天的另一个问题是在哪里进行清理。细节需要一些正则表达式的工作,但我不确定是在函数内部(一次一个),还是在函数外部通过调用库中特定键的所有值。
答案 0 :(得分:0)
get_inspect_detail()
中的每个项目都会调用urlList
一次,并保存所有结果。
all_results = []
for url in urlList:
details = get_inspect_detail(url)
all_results.extend(details)