Я работаю над проектом по извлечению подробностей из государственных отчетов о проверках ресторанов.Каждый осмотр имеет свой собственный URL.Я могу собрать значения в словарь, но возвращать только одно за раз.При вызове функции, если я не указываю конкретную запись библиотеки, я получаю сообщение об ошибке: у объекта «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 раз, но не все из них.Другой вопрос для другого дня - где сделать уборку.Детали требуют некоторого регулярного выражения, но я не уверен, делать ли это внутри функции (по одному за раз) или вне функции, вызывая все значения из определенного ключа в библиотеке.