насчет
from bs4 import BeautifulSoup
from urlparse import urlparse, parse_qs
html = '''
<html>
<body>
<table>
<tr>
<td class="rec_title_ppnlist">
<div><a class=" link_gen " href="SHW?FRST=0">Wambold von Umstadt, Anselm Kasimir, 1583-1647 (Zeit, Lebensdaten)</a></div>
<div><a class=" link_gen " href="SHW?FRST=1">Wambold von Umstadt, Anselm Kasimir, 1583-1647 (Zeit, Lebensdaten)</a></div>
<div class="rec_sep"><img alt="" border="" height="1" src="http://gsowww.gbv.de/images/gui/empty.gif" title="" width="1"/></div>
</td>,
<td class="rec_title_ppnlist">
<div><a class=" link_gen " href="SHW?FRST=2">Vomelius, Cyprianus, 1535-1587 (Zeit, Wirkungsdaten)</a></div>
<div><a class=" link_gen " href="SHW?FRST=2">Vomelius, Cyprianus, 1535-1587 (Zeit, Wirkungsdaten)</a></div>
<div class="rec_sep"><img alt="" border="" height="1" src="http://gsowww.gbv.de/images/gui/empty.gif" title="" width="1"/></div>.
<div><a class=" link_gen " href="SHW?FRST=3">Wambold von Umstadt, Anselm Kasimir, 1583-1647 (Zeit, Lebensdaten)</a></div>
<div><a class=" link_gen " href="SHW?FRST=4">4Vomelius, Cyprianus, 1535-1587 (Zeit, Wirkungsdaten)</a></div>
<div><a class=" link_gen " href="SHW?FRST=5">5Vomelius, Cyprianus, 1535-1587 (Zeit, Wirkungsdaten)</a></div>
<div><a class=" link_gen " href="SHW?FRST=6">6Vomelius, Cyprianus, 1535-1587 (Zeit, Wirkungsdaten)</a></div>
<div><a class=" link_gen " href="SHW?FRST=7">7Vomelius, Cyprianus, 1535-1587 (Zeit, Wirkungsdaten)</a></div>
<div><a class=" link_gen " href="SHW?FRST=8">8Vomelius, Cyprianus, 1535-1587 (Zeit, Wirkungsdaten)</a></div>
<div><a class=" link_gen " href="SHW?FRST=9">9Vomelius, Cyprianus, 1535-1587 (Zeit, Wirkungsdaten)</a></div>
<div><a class=" link_gen " href="SHW?FRST=10">10Vomelius, Cyprianus, 1535-1587 (Zeit, Wirkungsdaten)</a></div>
<div><a class=" link_gen " href="SHW?FRST=11">11Vomelius, Cyprianus, 1535-1587 (Zeit, Wirkungsdaten)</a></div>
<div><a class=" link_gen " href="SHW?FRST=12">12Vomelius, Cyprianus, 1535-1587 (Zeit, Wirkungsdaten)</a></div>
<div><a class=" link_gen " href="SHW?FRST=13">13Vomelius, Cyprianus, 1535-1587 (Zeit, Wirkungsdaten)</a></div>
<div><a class=" link_gen " href="SHW?FRST=25000">13Vomelius, Cyprianus, 1535-1587 (Zeit, Wirkungsdaten)</a></div>
<div><a class=" link_gen " href="SHW?FRST=25001">13Vomelius, Cyprianus, 1535-1587 (Zeit, Wirkungsdaten)</a></div>
</tr>
</table>
</html>
'''
soup = BeautifulSoup(html)
tdefs = soup.find_all('td', {'class': 'rec_title_ppnlist'})
with open('data.txt', 'w') as outfile:
for tdef in tdefs:
links = tdef.find_all('a', {'class': 'link_gen'})
for link in links:
url = urlparse(link['href'])
vals = url.query.split('=')
if vals[0] == 'FRST':
if(1 <= int(vals[1]) <= 25000):
print "%s %s" % (vals[1], link.get_text())
outfile.write(link.get_text() + '\n')
Я уверен, что та часть, где он читает строка запроса может быть приятнее (urlparse.parse_qs возвращает Dict из списка, мне кажется странным).
Этот код не проверяет правильность входных данных (например, ссылки имеют атрибуты href), но дает представление о том, как выполнить синтаксический анализ.
Вы хотите только ссылку href? – Hackaholic
Фактически, мне нужен промежуток, связанный с ссылкой href, например Theologia Germanica: Libellus Aureus Hoc Est Brevis Et Praegnans Quomodo Sit Exuendus Vetus Homo Induendusque Novus – user2278505