从Scrapy Spider响应中选择元素

问题描述 投票:0回答:1

[谁能帮我找出如何从使用Scrapy抓取的此page中仅提取链接?

我已经对蜘蛛代码进行了如下修改,但是正在努力弄清楚如何使用Scrapy选择器仅产生我想要的链接。

import scrapy

class RMWSpider(scrapy.Spider):
    name = "RMW"

    def start_requests(self):
        urls = [
            'http://search.people.com.cn/cnpeople/search.do?pageNum=1&keyword=%C8%F0%B5%E4&siteName=news&facetFlag=true&nodeType=belongsId&nodeId=0'
        ]
        for url in urls:
            yield scrapy.Request(url=url, callback=self.parse)


    def parse(self, response):
        links = response.css("ul").getall()
        for link in links:
            yield {
                'link': link.css('a')
            }

理想情况下,我需要一个.json文件,其中包含搜索结果的链接列表。关于如何理解Scrapy中选择器的使用的任何其他一般性提示也将非常有帮助。

非常感谢任何人都能一如既往地提供任何帮助。谢谢!

python web-scraping scrapy css-selectors
1个回答
0
投票

我认为这是您需要的:

URL_SELECTOR = "a::attr(href)"
urls = your_response.css(URL_SELECTOR).extract()

您应该明确地搜索草率的文档,在这里您可以找到有关选择器的一些信息:Scrapy selectors

我发现对于begginig非常有用的是scrapy shell:Scrapy shell doc,您可以在其中测试命令并查看输出:)

希望它能解决您的问题。

© www.soinside.com 2019 - 2024. All rights reserved.