Python 3.x Scrapy在起始URL和域中进行迭代

Python 3.x Scrapy在起始URL和域中进行迭代,python-3.x,pandas,scrapy,scrapy-spider,Python 3.x,Pandas,Scrapy,Scrapy Spider,我试图从csv中读取URL和域列表,并让Scrapyspider遍历域列表和启动URL,目标是通过我的管道将该域中的所有URL导出为csv文件 import scrapy from scrapy.spiders import CrawlSpider, Rule from scrapy.linkextractors import LinkExtractor from NONPROF.items import NonprofItem from scrapy.http import Request i

我试图从csv中读取URL和域列表,并让
Scrapy
spider遍历域列表和启动URL,目标是通过我的管道将该域中的所有URL导出为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:/csv'
open_list = pd.read_csv(file_path)
urlorgs = open_list.http.tolist()

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



class Nonprof(CrawlSpider):
        name = "responselist"
    for domain in domainorgs:
        allowed_domains = [domain]
    for url in urlorgs:
        start_urls = [url]

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

        def parse_item (self, response):
            item = NonprofItem()
            item['responseurl'] = response.url
            yield item
当我运行爬行器时,它会给我一个缩进错误,或者当我调整缩进时,它只会识别列表中的最后一个域


对于如何实现这一目标的任何建议,我们都表示感谢

你粘贴的这段代码有可怕的缩进,我并不奇怪解释器会抱怨。但这很可能是你的问题:

allowed_domains = [domain]
它创建一个只包含一个域的新列表,并将其分配给
允许的\u域
。所以最后一个域覆盖了以前保存在那里的所有内容。通过执行以下操作进行修复:

allowed_domains = []
for domain in domainorgs:
    allowed_domains += [domain]
甚至像这样(没有循环):


你粘贴的代码有很糟糕的缩进,我并不奇怪解释器会抱怨。但这很可能是你的问题:

allowed_domains = [domain]
它创建一个只包含一个域的新列表,并将其分配给
允许的\u域
。所以最后一个域覆盖了以前保存在那里的所有内容。通过执行以下操作进行修复:

allowed_domains = []
for domain in domainorgs:
    allowed_domains += [domain]
甚至像这样(没有循环):


修复缩进并尝试以下操作:

for domain in domainorgs:
    allowed_domains.append(domain)
for url in urlorgs:
    start_urls.append(url)

修复缩进并尝试以下操作:

for domain in domainorgs:
    allowed_domains.append(domain)
for url in urlorgs:
    start_urls.append(url)

也许你可以共享stacktrace,这样我们就可以看到缩进错误在哪里?也许你可以共享stacktrace,这样我们就可以看到缩进错误在哪里?使用append I get
NameError:name“allowed_domains”没有定义,所以它不能将allowed_domains识别为Scrapy中的函数。使用append I get
NameError:name“allowed_domains”未定义
,因此无法将allowed_domains识别为Scrapy中的函数。