Выбор элементов из ответа Scrapy Spider - PullRequest
0 голосов
/ 09 января 2020

Может кто-нибудь помочь мне выяснить, как извлечь только ссылки из этой страницы , очищенной с помощью Scrapy?

Я исправил код паука следующим образом, но изо всех сил пытаюсь выяснить, как использовать селекторы 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, также будут очень полезны.

Буду признателен за любую помощь, которую может предложить каждый, как всегда. Спасибо!

1 Ответ

0 голосов
/ 09 января 2020

Я думаю, что это то, что вам нужно:

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

Вы обязательно должны найти документацию по скрапингу, здесь вы найдете что-то о селекторах: Селекторы скрапов

То, что я нашел очень полезным для начала, - это оболочка scrapy: оболочка Scrapy do c, где вы можете проверить команды и посмотреть результаты:)

Надеюсь, что это решит вашу проблему.

...