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

Вот моя последняя попытка:
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?