Python 在解析scrapy spider中的URL之前,如何刮取表示网站中最大页面数的数字?

Python 在解析scrapy spider中的URL之前,如何刮取表示网站中最大页面数的数字?,python,scrapy,Python,Scrapy,我正在努力清理这个网站 我需要找到最大页数,这样我就可以将带有页码的URL附加到start_URL列表中。我不知道该怎么做 这是我到目前为止的代码 class PhdessaysSpider(scrapy.Spider): name = 'phdessays' start_urls = ['https://phdessay.com/free-essays/'] def parse(self, response): all_essay_urls = res

我正在努力清理这个网站

我需要找到最大页数,这样我就可以将带有页码的URL附加到start_URL列表中。我不知道该怎么做

这是我到目前为止的代码

class PhdessaysSpider(scrapy.Spider):
    name = 'phdessays'
    start_urls = ['https://phdessay.com/free-essays/']

    def parse(self, response):
        all_essay_urls = response.css('.phdessay-card-read::attr(href)').getall()
        for essay_url in all_essay_urls:
            yield scrapy.Request(essay_url, callback=self.parse_essay_contents)


    def parse_essay_contents(self, response):
        items = PhdEssaysItem()
        essay_title = response.css('.site-title::text').get()
        essay_url = response.request.url
        items['essay_title'] = essay_title
        items['essay_url'] = essay_url
        yield items
在上面的代码中,我跟踪每一篇文章到它的单独页面,并抓取URL和标题(我将抓取内容,这就是我跟踪单独文章URL的原因)


这对于起始页来说很好;但有大约1677页可能会在未来发生变化。我想刮除此
最大页数
号,然后附加所有带有所有页码的链接。

您可以做的是找到最后一个页码,然后执行范围循环以生成下一页请求

大概是这样的:

类PhdessaysSpider(scrapy.Spider):
名称='phdessays'
起始URL=['https://phdessay.com/free-essays/']
def解析(自我,响应):
max_page=int(response.css('.page number::text').getall()[-1])
对于范围内的页码(1,最大页码+1):
page_url=f'https://phdessay.com/free-essays/page/{页码}/'
生成scrapy.Request(page\u url,callback=self.parse\u page)
def解析页面(自我,响应):
所有文章URL=response.css('.phdessay卡片读取::attr(href)').getall()
对于所有文章url中的文章url:
生成scrapy.Request(文章url,回调=self.parse文章内容)
def分析文章内容(自我、回复):
items=PhdEssaysItem()
文章标题=response.css('.site title::text').get()
文章url=response.request.url
项目[‘文章标题]]=文章标题
项目['Artish_url']=Artish_url
收益项目

谢谢。但我对这个概念已经很熟悉了。我正在尝试解决一个问题,即您无法区分和唯一标识分页中的下一页信息。也没有提供类似“下一页”功能的选项。因此,我希望我可以在
max\u pages
变量中填充最大数量的页面,并将所有链接附加到
start\u URL
列表中。我的错,我应该在帖子中详细说明。对不起,我读你的问题太快了。我对我的问题进行了编辑,以获取对您更有帮助的信息:)