【发布时间】:2016-04-02 06:47:23
【问题描述】:
我正在尝试查看是否可以使用以下代码提取数据。出于某种原因,beautifulsoup 打印输出不包含我看到的数据。我想知道我哪里出错了。我一直在尝试不同类型的标题,这是我认为我的问题所在,但我可能错了。例如,当我在浏览器上检查页面时,我无法找到以下路径:<div class="textbold font-medium ng-binding">$25,000</div>
import urllib2
from bs4 import BeautifulSoup
url='https://www.prosper.com/listings#/detail/4964721'
hdr = {'Accept': 'text/html,application/xhtml+xml,*/*',"user-agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36"}
req=urllib2.Request(url,headers=hdr)
html = urllib2.urlopen(req)
soup=BeautifulSoup(html,"lxml")
print soup
【问题讨论】:
-
您能分享您看到的数据以及您应该看到的数据吗?
-
它很大,但你可以在浏览器上看到页面,然后使用我提供的代码打印出页面,你会发现它们不是一回事。我提供了一个小例子,如果这还不够,请告诉我。
-
大部分页面似乎是由 JavaScript 代码生成的,在浏览器中解释。但是 BeautifulSoup 没有 JavaScript 引擎。例如,您可以尝试使用 Selenium。见stackoverflow.com/questions/2148493/…。
-
@mzjn 我试图远离 Selenium 主要是因为即使使用无头浏览器也很慢。但如果这是唯一的方式,我会不情愿地承认。
-
@mzjn 对我来说,似乎发生了刷新,第一次访问网站时它没有数据,然后浏览器刷新并提供数据,这可能不是javascript问题
标签: python beautifulsoup urllib2