Вы можете даже использовать простые строковые методы :
html = '<html> lots of crap <title>Title</title> even more crap </html>'
start = html.find('<title>') + 7 # Add length of <title> tag
end = html.find('</title>', start)
title = html[start:end]
Однако это только гарантирует, что <title>
найден до </title>
на странице. Не то чтобы это было в разделе <head>
или что-то в этом роде.
Кроме того, вы должны подтвердить свое предположение, что на самом деле является разбором BeautifulSoup, который занимает львиную долю времени. (Я предполагаю, что open(url).read()
для 5000 ресурсов тоже занимает довольно много времени. Это вы не устраните, независимо от того, как вы "анализируете" HTML.)