繁体   English   中英

scrapy不返回文本

[英]scrapy does not return text

我是零碎学习的新手。 想要抓取网页。 在开始完成项目之前,先探索命令行。 从网页抓取中,我可以使用以下命令提取H3标签下的链接

sel.xpath("//h3//@href").extract()

这将提取所有URL。 但是后来才意识到网站上的链接是分页的。 通过手动浏览页面,我能够知道页面总数。 但是我想从第一页中提取内容,因为它的底部信息是

Page 1 of 100

在div标签下

<div class="pagination-meta">
    Page 1 of 100
</div>

我尝试使用以下命令提取详细信息。 但是它只返回了[]。 如果我错了请指正我

sel.xpath('//div[@class="pagination_meta"]/text()').extract();

我尝试以下内容,因为分页元的div在其他两个div之下

<div class="search-pagination-top bb box-sizing-content">
    <div class="grid_3 column alpha tmargin">
        <div class="pagination-meta">
        Page 1 of 100
        </div>
    </div>
</div>


sel.xpath('//div[@class="search-pagination-top bb box-sizing-content"]//div/text()').extract();
    [u'Page 1 of 100']

这是正确的方法吗? 为什么我的第一个命令没有给出确切的内容?

如果您使用,它将起作用:

sel.xpath('//div[@class="pagination-meta"]/text()').extract();

由于您要匹配确切的字符串,所以下划线破折号肯定会有所不同。

有很多方法可以达到相同的结果。 第二种方法也是正确的。 很多时候,有必要在一个或多个位置步骤中获取上下文 ,以便使用相对的XPath表达式导航到最终选择步骤。 当您的页面可能会更改或结构可能会更改时,就会发生这种情况。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM