gpt4 book ai didi

python - 使用 scrapy 递归爬取站点

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

我正在尝试使用 scrapy 废弃一个网站。我需要抓取的网页 URL 如下所示: http://www.example.com/bla-bla-bla/ 2

我需要抓取的下一页是: http://www.example.com/bla-bla-bla/ 3

我需要抓取的下一页是: http://www.example.com/bla-bla-bla/ 4

等等……

这是我目前基于Scrapy教程编写的代码:

from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
from scrapy.selector import Selector
from schooldata.items import SchooldataItem

class tv_spider(CrawlSpider):
name = "tv"
allowed_domain = ["http://www.example.com"]
start_urls = [
"http://www.example.com/bla-bla-bla/2"
]
#rules = [Rule(SgmlLinkExtractor(allow=['/\d+']), 'parse_tv')]
#rules = [Rule(SgmlLinkExtractor(allow=['/\d+']), callback='parse_tv')]
rules = (
Rule(SgmlLinkExtractor(allow=r"bla-bla-bla/\d+"), follow=True, callback='parse_tv'),
)

def parse_tv(self, response):
filename = response.url.split("/")[-2]
open(filename, 'wb').write(response.body)

我面临的问题是爬虫进入起始页面但之后没有废弃任何页面。另请注意,起始页中不包含指向后续页面的链接。

我需要对我的代码进行哪些更改才能实现此目的?

最佳答案

Scrapy 规则不能正常工作。使用类似的东西:

def start_requests(self):
for i in range(1000):
yield Request("http://www.example.com/bla-bla-bla/" + str(i), self.parse_tv)

其中 1000 - 总页数。

关于python - 使用 scrapy 递归爬取站点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21551332/

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