Как очистить внутренний уровень URL с помощью скрапа? - PullRequest
1 голос
/ 14 апреля 2019

Я создал паука-скрапа, смотрящего онлайн-видео. Он удаляет URL профиля с веб-сайта. Я хочу расширить это, чтобы удалить данные, такие как адрес, имя, телефон, адрес веб-сайта из каждого очищенного URL-адреса профиля.

Я думал создать отдельный скребок. Один для очистки профиля URL. И второй, чтобы очистить данные от первого очищенного URL.

Есть ли другое решение?

Вот мой паук, который очищает URL профиля.

# -*- coding: utf-8 -*-
import scrapy
from ..items import ...scraperItem

class SpiderSpider(scrapy.Spider):
    name = 'spider'
    start_urls = ['https:// ...']
    page_number = 15

    def parse(self, response):
        items=...scraperItem()
       ..._url=response.css('a.header-5.text-unbold ::attr(href)').extract_first()

        items['..._url']= ..._url
        yield items
        next_page = 'https:/...'+str(...SpiderSpider.page_number)
        if ...SpiderSpider.page_number <= 150:
            ...SpiderSpider.page_number += 15
            yield response.follow(next_page, callback = self.parse)

1 Ответ

0 голосов
/ 14 апреля 2019

Вы можете добавить другой метод анализа (например, parse_profile), чтобы очистить дополнительные данные. Э.Г.

def parse(self, response):
    url = response.css('a.header-5.text-unbold ::attr(href)').extract_first()

    yield response.follow(url, callback=self.parse_profile)

    # next_page = ...
    if self.page_number <= 150:
        self.page_number += 15
        yield response.follow(next_page, callback=self.parse)

def parse_profile(self, response)
    item = HouzzscraperItem()
    item['houzz_url'] = response.url
    # item['address'] = ...
    # item['name'] = ...
    # item['phone'] = ...
    yield item
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...