初来乍到的小菜 2017-10-21 02:54 采纳率: 0%
浏览 643

scrapy中选择器的问题

大佬们看看,为什么post_node没有css属性,怎么解决
源代码如下:
post_nodes = response.css("#archive .floated-thumb .post-thumb a").extract()
for post_node in post_nodes:
image_url = post_node.css("img::attr(src)").extract_first("")
错误:
image_url = post_node.css("img::attr(src)").extract_first("")
AttributeError: 'str' object has no attribute 'css'

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-07 01:40
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    在Scrapy中,#archive .floated-thumb .post-thumb a这个CSS选择器匹配的是一个包含类名为.post-thumb的元素内的所有链接。如果你想要获取这些链接对应的图像URL,你需要使用linkrel属性。

    例如,你可以这样修改你的代码:

    post_nodes = response.css("#archive .floated-thumb .post-thumb a.link, #archive .floated-thumb .post-thumb a.rel").extract()
    for post_node in post_nodes:
        image_url = post_node.css("img::attr(src)").extract_first("")
    

    这将返回所有的<a>标签,其中href属性为#archiveclass属性为floated-thumbrellink且包含"post-thumb"的链接,并提取出它们的图像URL。

    如果仍然遇到问题,请提供更多的错误信息以便我们能更好地帮助你。

    评论

报告相同问题?