我想抓取一个网站,它有一些由js生成的内容。 该站点每5秒运行一次js更新内容(请求一个新的加密js文件,无法解析)。在
我的代码:
from selenium import webdriver
driver = webdriver.PhantomJS()
driver.set_window_size(1120, 550)
driver.get(url)
trs = driver.find_elements_by_css_selector('.table tbody tr')
print len(trs)
for tr in trs:
try:
items.append(tr.text)
except:
# because the js update content, so this tr is missing
pass
print len(items)
len(items)
与len(trs)
不匹配。
如何告诉selenium在我运行trs = driver.find_elements_by_css_selector('.table tbody tr')
后停止执行js或停止工作?在
我以后需要使用trs
,所以不能{
异常详细信息:
^{pr2}$似乎tr丢失了。在
注:我需要用硒来选择元素。其他lib比如lxml
,pyquery
不知道哪个元素是display:none
,而.text()
经常在<script>
中得到注释或其他东西,等等。遗憾的是python没有一个完美的Jquery克隆。在
用刮痧。一旦确定页面已加载,请使用以下方法抓取正文:
现在您有了页面的静态副本,这样就可以使用scrapy了响应.xpath获取你需要的任何数据。这answer更详细。在
相关问题 更多 >
编程相关推荐