我正在分析jeevansathi.com网站想要选择id为<ul>
的#profileInfo2
,但是在使用BeautifulSoup之后,我得到的是空列表,下面是代码和输出
import requests, bs4
res = requests.get('http://www.jeevansathi.com/search/quick/169903999/1')
try:
res.raise_for_status()
nazia=bs4.BeautifulSoup(res.text)
print type(nazia)
elems=nazia.select("#profileInfo2")
print type(elems)
print len(elems)
except Exception as exc:
print("There was a problem: %s" % (exc))
输出为
<class 'bs4.BeautifulSoup'>
<type 'list'>
0
内容是动态加载的,您可以在请求返回的内容中查看模板,或者查看浏览器中的视图源:
您可以使用selenium在浏览器中查看源代码,并将其与phantomjs结合以进行无头浏览:
这将为您提供具有idprofileInfo2的ul,如果您希望每个li都在其中,您还可以使用css选择器:
从每一条中提取文本:
你可能想要所有你能得到的uls:
如果在浏览器中禁用javascript,则页面中不会出现内容#profileInfo2,因此如果没有javascript,它也不会在python中显示。你知道吗
您可以通过使用Firefox和活动NoScript插件访问站点,并在html源代码中搜索#profileInfo2来轻松验证这一点。你知道吗
相关问题 更多 >
编程相关推荐