Beautifulsoup 带有URL循环的函数赢得';I don’我不会把它们全部归还
我正在做一个项目,从州政府关于餐馆检查的报告中提取细节。每个检查都有自己的url。我能够将这些值收集到字典中,但一次只能返回一个。在对函数的调用中,如果我没有指定特定的库条目,我会得到一个错误:“”list”对象没有属性“timeout”。如果它请求特定条目,我会得到一个良好的返回。我怎样才能把它们都买下来Beautifulsoup 带有URL循环的函数赢得';I don’我不会把它们全部归还,beautifulsoup,screen-scraping,python-3.6,Beautifulsoup,Screen Scraping,Python 3.6,我正在做一个项目,从州政府关于餐馆检查的报告中提取细节。每个检查都有自己的url。我能够将这些值收集到字典中,但一次只能返回一个。在对函数的调用中,如果我没有指定特定的库条目,我会得到一个错误:“”list”对象没有属性“timeout”。如果它请求特定条目,我会得到一个良好的返回。我怎样才能把它们都买下来 # loop through the url list to gather inspection details detailsLib = {} def get_inspect_detail
# 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次,但不是全部。
另一天的另一个问题是在哪里进行清理。详细信息将需要一些正则表达式工作,但我不确定是在函数内部(一次一个)还是在函数外部通过调用库中特定键的所有值来完成这些工作。调用
get\u inspect\u detail()
在urlist
中的每个项一次,并保存所有结果
all_results = []
for url in urlList:
details = get_inspect_detail(url)
all_results.extend(details)
谢谢你看这个。我可以理解你的方法,但它似乎仍然不起作用。如果urlList只包含一个url,那么如果您“打印(所有_结果)”,这段代码将重复它大约44次,如果urlList有两个url,第一个url将重复44次,第二个url将重复44次。如果urlList有很多URL,它就会挂起。