Python 分析Beautifulsoup4中的类

Python 分析Beautifulsoup4中的类,python,beautifulsoup,bs4,Python,Beautifulsoup,Bs4,基本上,我希望访问html表中的元素 这是我的密码: r = requests.get('http://www.google.com/finance?q=NYSE%3Aibm&ei=Hz4oVZq-PISjiQKYu4GoAQ') soup = BeautifulSoup(r.content) td = soup.find_all('td', class_='ctsymbol') 我一无所有……[] 我在同一个td上尝试了这种方法,但这次是在本地文本文件上,似乎效果不错。 我做错了

基本上,我希望访问html表中的元素

这是我的密码:

r = requests.get('http://www.google.com/finance?q=NYSE%3Aibm&ei=Hz4oVZq-PISjiQKYu4GoAQ')

soup = BeautifulSoup(r.content)

td = soup.find_all('td', class_='ctsymbol')
我一无所有……[]

我在同一个td上尝试了这种方法,但这次是在本地文本文件上,似乎效果不错。
我做错了什么?

页面中根本没有这样的元素:

>>> import requests
>>> from bs4 import BeautifulSoup
>>> r = requests.get('http://www.google.com/finance?q=NYSE%3Aibm&ei=Hz4oVZq-PISjiQKYu4GoAQ')
>>> soup = BeautifulSoup(r.content)
>>> {c for e in soup.find_all('td') if 'class' in e.attrs for c in e['class']}
set(['name', 'val', 'p', 'i', 'period', 'itxt', 'lft', 't', 'key', 'colHeader', 'linkbtn'])

这是HTML中元素上使用的所有类的集合。考虑到您不能依赖浏览器开发工具中的元素树,因为它们反映了JavaScript代码运行后的页面。

也尝试了soup.findAll'td',{'class':'ctsymbol'}:为什么您希望ctsymbol类存在?考虑到你的浏览器可以在加载页面后执行JavaScript代码,并不是你在开发者工具中看到的所有东西都在HTML源代码中。这是有道理的,谢谢你的建议。这就引出了一个问题,那你是如何获得这些元素的?有没有任何python模块能够调用浏览器,然后解析html?事实上,我发现这是一个23282182的副本,其中他们使用selenium packge。@Reathing:我没有看到在查看该页面活动时加载简单的AJAX请求。不过,我也没有找到ctsymbol类。对于这样一个复杂的页面,如果没有其他方法来获取信息,那么在Selenium下运行页面是次好的选择。