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

0 投票
1 回答
516 浏览
提问于 2025-04-18 17:45

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

这是我最开始的代码:

 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 个回答

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()

撰写回答