我目前正在运行此代码:
import urllib
from bs4 import BeautifulSoup
htmltext = urllib.urlopen("http://www.fifacoin.com/")
html = htmltext.read()
soup = BeautifulSoup(html)
for item in soup.find_all('tr', {'data-price': True}):
print(item['data-price'])
当我运行此代码时,我根本没有得到任何输出,当我知道在该特定网站上有这些搜索参数的html标签时。我可能在这里犯了一个明显的错误,我是Python和BeautifulSoup的新手。
答案 0 :(得分:2)
问题是价格表列表是通过javascript加载的,据我所知,urllib不包含任何javascript引擎。因此,该页面中的所有javascript(在普通浏览器中执行)都不会在urllib提取的页面中执行。 这样做的唯一方法是模拟真实的浏览器。 想到的解决方案是PhantomJS和Node.js。
我最近和nodejs做了类似的事情(虽然我也是一个蟒蛇粉丝),现在很惊讶。我做的有点不同,但这个页面似乎很好地解释了你想要做的事情:http://liamkaufman.com/blog/2012/03/08/scraping-web-pages-with-jquery-nodejs-and-jsdom/