我想从此网页http://www.changning.sh.cn/jact/front/front_mailpublist.action?sysid=9
上的表中搜索数据在编写蜘蛛之前,我在Scrapy shell中测试了我的Xpath表达式,但遇到了一个问题:Xpath无法从表中获取任何文本。
假设我想在左上角单元格中提取文本LM2015122827458,我使用了angular.module('dataApp')
.factory('UserService', function () {
var User = $resource(ENV.API_URL + '/user/:email', {
email: '@email'
}, {
add: {
method: 'POST',
url: ENV.API_URL + '/user/:email/medication/:medicationId',
params: {
email: '@email',
dataId: '@medicationId'
}
}
});
User.addData = function (dataList) {
var promiseArray = [];
angular.forEach(dataList, function (data) {
User.add({
email: currentUser.email,
dataId: data._id
}).$promise.then(function success(response) {
promiseArray.push(response.$promise);
}, function error(response) {
promiseArray.push(response.$promise);
promiseArray.push(response.$promise);
});
});
return $q.all(promiseArray);
};
});
。只返回一个空列表。我尝试了另外的Xpath表达式,包括灵感来自Chrome"复制Xpath,"但没有运气。我甚至使用response.xpath("//tr[@class = 'tr_css']/td[1]/text()").extract()
提取页面上的所有文本,看看LM2015122827458是否存在。它不是。那么,这是一个Xpath无法处理的页面吗?或者我做错了什么?非常感谢你!
答案 0 :(得分:0)
这个Xpath对我来说很好用: -
//tr[@class='tr_css'][1]/td[@class='text-center'][1]
java下面的代码工作对我来说很好: -
driver.get("http://www.changning.sh.cn/jact/front/front_mailpublist.action?sysid=9");
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
String a = driver.findElement(By.xpath("//tr[@class='tr_css'][1]/td[@class='text-center'][1]")).getText();
System.out.println(a);
希望它会对你有所帮助:)。