gpt4 book ai didi

python - 如何让 scrapy 使用 url 迭代存档?

转载 作者:太空宇宙 更新时间:2023-11-03 20:39:51 24 4
gpt4 key购买 nike

我正在尝试让 scrapy 蜘蛛爬行存档中的多个页面,目的是打开每个单独的链接并抓取链接页面的内容。我遇到了一些随机的 HTTP 500 错误,我试图通过简单地执行 try- except 来跳过那些返回 500 错误的页面。

解析函数的第一部分迭代存档页面中的 href,以便使用 parse_art 函数来抓取页面。第二部分是在存档中查找下一页,并继续抓取该页面。

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

在 Python 3.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_number 无法更改 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)

关于python - 如何让 scrapy 使用 url 迭代存档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56927628/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com