sel.css选择器:分成两个句子

时间:2014-08-19 06:44:31

标签: python css-selectors scrapy

我有一个问题: 如何分成两句话?

这是我的原始代码

 sel = Selector(response)
 links = sel.css("div#bargains > article.box h1 > em > a::attr(href)").extract()

因为我想要另外一个信息,所以我这样重写:

 sel = Selector(response)
 sites = sel.css("div#bargains > article.box h1 > em ")
 for site in sites:
    link = sel.css("a::attr(href)").extract()
    title = sel.css("a::text").extract()

但这不起作用,它会抓住另一个我不想要的信息

我知道下面的代码不正确,我只是想问一下如何表达'>'在sel.css中的单独行

link = sel.css("> a::attr(href)").extract() 

请指导我。谢谢你

1 个答案:

答案 0 :(得分:1)

Scrapy 支持“相对”选择器语法。问题在于您在循环迭代中重用的sel变量,因此您要从整个文档中进行选择。

您的代码应改为:

sel = Selector(response)
links = sel.css("div#bargains > article.box h1 > em > a")
for link_element in links:
    link = link_element.css("::attr(href)").extract()
    title = link_element.css("::text").extract()