Python 如何让scrapy使用url在存档上进行迭代?

Python 如何让scrapy使用url在存档上进行迭代?,python,python-3.x,scrapy,Python,Python 3.x,Scrapy,我正在尝试让一个“刮擦蜘蛛”在归档文件中的几个页面中爬行,目标是打开每个链接并刮擦链接页面的内容。我遇到了一些随机的HTTP500错误,我只是尝试跳过这些返回500个错误的页面 parse函数的第一部分迭代归档页面中的HREF,以便使用parse_art函数对页面进行刮取。第二部分是查找归档中的下一个页面,然后继续抓取该页面 我试图将程序更改为在初始URL上迭代,但似乎无法正确执行。任何帮助都将不胜感激 在Python3.7上运行scrapy import scrapy url_number =

我正在尝试让一个“刮擦蜘蛛”在归档文件中的几个页面中爬行,目标是打开每个链接并刮擦链接页面的内容。我遇到了一些随机的HTTP500错误,我只是尝试跳过这些返回500个错误的页面

parse函数的第一部分迭代归档页面中的HREF,以便使用parse_art函数对页面进行刮取。第二部分是查找归档中的下一个页面,然后继续抓取该页面

我试图将程序更改为在初始URL上迭代,但似乎无法正确执行。任何帮助都将不胜感激

在Python3.7上运行scrapy

import scrapy
url_number = 1

class SpiderOne(scrapy.Spider):
    name = 'spider1'
    start_urls = ["http://www.page2bscraped.com/archive?page=%d" % url_number]

    #Parses over the archive page
    def parse(self, response):
        global url_number
        for href in response.xpath(".//a/@href"):
            yield response.follow(href, self.parse_art)

        for href in response.xpath(start_url):
            yield response.follow(start_url, self.parse)
            url_number += 1

    #Parses page contents                              
    def parse_art(self, response):
    #code goes here

我试图让爬行器利用url并简单地向当前存档编号添加1,而不是依赖(不可靠的)“下一页”Xpath,从而在存档中爬行。

更改值
url\u编号
无法更改
url
中的值

您必须再次生成完整的url

def parse(self, response):
    global url_number

    for href in response.xpath(".//a/@href"):
        yield response.follow(href, self.parse_art)

    url_number += 1
    url = "http://www.page2bscraped.com/archive?page=%d" % url_number

    yield response.follow(url, self.parse)

url\u number
添加值无法更改url中的值。这样不行。您必须再次使用
“http://www.page2bscraped.com/archive?page=%d“%url\u number
创建新url。