Скопируйте несколько доменов и запустите URL - PullRequest
0 голосов
/ 31 августа 2018

У меня есть простой Sracpy паук, который экспортирует все страницы домена в отдельный CSV-файл. Большинство людей рекомендуют писать разные пауки для каждого сайта, но, учитывая, насколько проста информация, которую я запрашиваю, я подумал, что имеет смысл выяснить, как перебирать список доменов. Со временем появятся тысячи доменов, с которых я хочу получать ссылки, и все они будут иметь совершенно разные структуры, поэтому я бы хотел, чтобы паук масштабировался.

Вот пара строк из CSV, из которых паук вытягивает домены:

enter image description here

Вот моя последняя попытка:

import scrapy
from scrapy.spiders import CrawlSpider, Rule
from scrapy.linkextractors import LinkExtractor
from NONPROF.items import NonprofItem
from scrapy.http import Request
import pandas as pd

file_path = 'C:/listofdomains.csv'
open_list = pd.read_csv(file_path)
urlorgs = open_list.urls.tolist()

open_list2 = pd.read_csv(file_path)
domainorgs = open_list2.domain.tolist()

class Nonprof(CrawlSpider):
    name = "responselist"
    allowed_domains = domainorgs
    start_urls = urlorgs

    rules = [
        Rule(LinkExtractor(
            allow=['.*']),
             callback='parse_item',
             follow=True)
        ]

    def parse_item (self, response):
        item = NonprofItem()
        item['responseurl'] = response.url
        yield item

Я не вижу явных ошибок при запуске паука, но, похоже, он ничего не дает: [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)

Итак, у меня есть несколько вопросов: 1. Может ли скраппи обрабатывать такой запрос? 2. Есть ли лучший способ заставить паука перебирать список доменов и сопоставлять start_url?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...