tutorial from find_next_sibling python python-3.x beautifulsoup findall

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