ТАК У меня есть следующий набор кода, разбирающий вкусную информацию.Он печатает данные со страницы Delicious в следующем формате
Закладка |Количество человек
Закладка |Количество людей и т.д ...
Я использовал следующий метод, чтобы найти эту информацию.
def extract (soup):
links = soup.findAll('a',rel='nofollow')
for link in links:
print >> outfile, link['href']
hits = soup.findAll('span', attrs={'class': 'delNavCount'})
for hit in hits:
print >> outfile, hit.contents
#File to export data to
outfile = open("output.txt", "w")
#Browser Agent
br = Browser()
br.set_handle_robots(False)
br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]
url= "http://www.delicious.com/asd"
page = br.open(url)
html = page.read()
soup = BeautifulSoup(html)
extract(soup)
Но проблема заключалась в том, что в некоторых закладках не было нескольких человек, поэтому я решил проанализировать их по-разному, чтобы одновременно получать данные и распечатывать закладки и количество людей рядом.,
РЕДАКТИРОВАТЬ: с этой обновленной версией у вас получится от 15 до 5 секунд, больше предложений
def extract (soup):
bookmarkset = soup.findAll('div', 'data')
for bookmark in bookmarkset:
link = bookmark.find('a',)
vote = bookmark.find('span', 'delNavCount')
try:
print >> outfile, link['href'], " | " ,vote.contents
except:
print >> outfile, "[u'0']"
#print bookmarkset
#File to export data to
outfile = open("output.txt", "w")
#Browser Agent
br = Browser()
br.set_handle_robots(False)
br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]
url= "http://www.delicious.com/asd"
page = br.open(url)
html = page.read()
soup = BeautifulSoup(html)
extract(soup)
Производительность на этом экране ужасна, анализ первой страницы занимает 17 секунд,около 15 секунд после этого на довольно приличной машине.Он значительно ухудшился при переходе от первого бита кода ко второму.Есть ли что-нибудь, что я могу сделать, чтобы улучшить перфект здесь?