python - find_next_sibling - from bs4 import beautifulsoup
Beautiful Soup findAll no los encuentra a todos (1)
Estoy tratando de analizar un sitio web y obtener información con BeautifulSoup.findAll pero no los encuentra todos .. Estoy usando python3
el código es este
#!/usr/bin/python3
from bs4 import BeautifulSoup
from urllib.request import urlopen
page = urlopen ("http://mangafox.me/directory/")
# print (page.read ())
soup = BeautifulSoup (page.read ())
manga_img = soup.findAll (''a'', {''class'' : ''manga_img''}, limit=None)
for manga in manga_img:
print (manga[''href''])
solo imprime la mitad de ellos ...
Diferentes analizadores de HTML tratan de manera diferente con el HTML roto. Esa página lxml
HTML roto, y el analizador lxml
no lo está tratando muy bien:
>>> import requests
>>> from bs4 import BeautifulSoup
>>> r = requests.get(''http://mangafox.me/directory/'')
>>> soup = BeautifulSoup(r.content, ''lxml'')
>>> len(soup.find_all(''a'', class_=''manga_img''))
18
La biblioteca estándar html.parser
tiene menos problemas con esta página específica:
>>> soup = BeautifulSoup(r.content, ''html.parser'')
>>> len(soup.find_all(''a'', class_=''manga_img''))
44
Traduciendo eso a su ejemplo de código específico usando urllib
, especificaría el analizador así:
soup = BeautifulSoup(page, ''html.parser'') # BeatifulSoup can do the reading