正确的xpath返回空结果

正确的xpath返回空结果,xpath,scrapy,Xpath,Scrapy,我想从这个网页上的表格中抓取数据 在编写spider之前,我在ScrapyShell中测试了Xpath表达式,但遇到了一个问题:Xpath无法从表中获取任何文本 假设我想提取左上角单元格中的文本LM2015122827458,我使用了response.xpath(//tr[@class='tr_css']]/td[1]/text()).extract()。只返回了一个空列表。我尝试了其他Xpath表达式,包括受Chrome“copy Xpath”启发的表达式,但没有成功。我甚至使用respon

我想从这个网页上的表格中抓取数据

在编写spider之前,我在ScrapyShell中测试了Xpath表达式,但遇到了一个问题:Xpath无法从表中获取任何文本


假设我想提取左上角单元格中的文本LM2015122827458,我使用了
response.xpath(//tr[@class='tr_css']]/td[1]/text()).extract()
。只返回了一个空列表。我尝试了其他Xpath表达式,包括受Chrome“copy Xpath”启发的表达式,但没有成功。我甚至使用
response.xpath(“//text()”
提取页面上的所有文本,以查看LM2015122827458是否存在。事实并非如此。那么,这是Xpath无法处理的页面吗?还是我做错了什么?多谢各位

这个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);

希望它能对您有所帮助:)

表格内容很可能是用Javascript加载的,因此如果您只需刮取HTML源代码,它们就不可用。你可能想使用像ScrapyJS(Splash)这样的东西。谢谢你的建议,Mathias。这也是我所怀疑的。但是,如何确保数据是否加载了Javascript?我确实在head元素中找到了这些。这是否意味着数据是用Javascript加载的?Shubham,谢谢你的回答!但是您能通过Xpath获得任何信息吗?我在下面的代码中使用了它,但它仍然返回一个空列表
response.xpath(//tr[@class='tr_css'][1]/td[@class='text-center'][1]”)
。很遗憾,我不懂Java,所以我不能从您的第二段代码中获益。