Я пытаюсь поиграть с BeautifulSoup, возвращая названия книг определенного результата поиска genlib:
from bs4 import BeautifulSoup
import requests
import re
url = "http://gen.lib.rus.ec/search.php?req=physics&lg_topic=libgen&open=0&view=simple&res=25&phrase=1&column=def"
soup = BeautifulSoup(requests.get(url).text, 'lxml')
for html in soup.find_all('tr', {'valign': 'top', 'bgcolor':'#C6DEFF'}):
print(html.find('a', {'href': re.compile("book/index.php\?md5=.")}).text)
Соответствующий HTML:
<a href="book/index.php?md5=AAC0058748685BAEB782D1A156A2ED25" id="28" title="">
Physics of life
<br/>
<font color="green" face="Times">
<i>
0444527982, 9780444527981, 9780080554648
</i>
</font>
</a>
<a href="book/index.php?md5=C892C74AEAC46715475EF5334302D751" id="48" title="">
Physics and Chemistry Basis of Biotechnology
<br/>
<font color="green" face="Times">
<i>
9780306468919, 0306468913
</i>
</font>
</a>
Все работало нормально, кромевыходные данные включают некоторые нежелательные коды ISBN:
"""
Physics of life 0444527982, 9780444527981, 9780080554648
Physics and Chemistry Basis of Biotechnology 9780306468919, 0306468913
Lectures On Statistical Physics And Protein Folding [illustrated edition] 9812561439, 9789812561435, 9789812569387, 9812561501
...
"""
Я хочу избавиться от цифр, однако и названия книг, и цифры находятся внутри тегов <a></a>
, а цифры находятся внутри<i></i>
тегов.Мне сразу показалось, что я могу извлечь ISBN, поставив в конце «.i.text», но как я могу извлечь только названия книг?