python-3.x - scraping - scrape with selenium python
Solo se puede encontrar por ID, no por clase, con BeautidulSoup4(Python3.x) (1)
Soy nuevo en BeautifulSoup4
y encontré un problema que parece elemental. Solo puedo buscar por id, pero no por clase. Por ejemplo, estoy viendo un sitio que tiene la siguiente parte de html:
Ahora, los siguientes trabajos:
page_soup.findAll(''div'', {''id'': ''page-content''})
mientras que lo siguiente no encuentra nada:
page_soup.findAll(''div'', {''class'': ''main-container''})
Entonces mi pregunta es: ¿se ''trata'' la clase diferentemente de los atributos ''id''? Si es así, ¿cuál es la forma correcta de buscar por nombre de clase?
Solo para completarlo, aunque creo que no debería importar, obtuve el html utilizando el método page_source del paquete de selenium
.
EDITAR : Aquí hay un ejemplo de dicha página. Si inspeccionamos la mesa superior, incluida la posición del jugador, la edad, etc., obtendremos la instantánea html anterior.
A continuación se muestran los comandos que ejecuto y funciona muy bien para mí
In [1]: from bs4 import BeautifulSoup
In [2]: import requests
In [3]: res = requests.get("http://www.spotrac.com/mlb/atlanta-braves/freddie-freeman-7359/")
In [4]: soup = BeautifulSoup(res.text,"lxml")
In [5]: len(soup.findAll(''div'', {''class'': ''main-container''}))
Out[5]: 1
In [6]: soup = BeautifulSoup(res.text,"html5lib")
In [7]: len(soup.findAll(''div'', {''class'': ''main-container''}))
Out[7]: 1
In [8]: import sys; sys.version
Out[8]: ''3.6.2 (default, Jul 17 2017, 16:44:45) /n[GCC 4.2.1 Compatible Apple LLVM 8.1.0 (clang-802.0.42)]''
Como puedes ver, funciona para mí en ambos analizadores.