- 今晚在尝试爬去某基金网站时候调试了一晚上,无论怎么调整Xpath匹配规则基金的业绩情况都无法获取到,而部分标题等可以获取到。
- 为什么出现上述情况:该网站一些标题等固定的页面展示数据是静态加载的,这个数据我们可以在Scrapy默认的response中找到,而基金业绩数据却是动态加载的,打印出来的response的报文体中确实不存在基金的业绩数据。
- 如何解决动态加载数据的问题呢?我们可以借助Selenium框架来解决,Selenium需要用到浏览器驱动,本人使用的为chrome。
- 首先我们需要利用如下命令知道自己浏览器的版本(在浏览器搜索栏输入如下命令):
chrome://version/
2.下载 chromedriver,并将chromdriver放置于python路径下(同python.exe一个文件下)。chromedriver与浏览器的版本对应关系可参考 此博客
3.利用如下代码即可获取到页面动态加载的信息了(这里省略了利用Scrapy建立爬虫工程和具体爬虫):
from selenium import webdriver
#作为测试,我们可以直接在parse函数中验证是否可以取到数据
browser = webdriver.Chrome()#注意Chrome()首字母大写
browser.get("http://fundf10.eastmoney.com/jdzf_002190.html")
data = browser.find_element_by_xpath("//*[@id='jdzftable']/div/ul[2]/li[2]").text#取标签动态加载的数据
网友评论