gpt4 book ai didi

python - 如何使用python获取整个网站的所有页面?

转载 作者:行者123 更新时间:2023-12-01 00:49:44 25 4
gpt4 key购买 nike

我正在尝试制作一个应该从网站获取每个链接的工具。例如,我需要从 stackoverflow 获取所有问题页面。我尝试使用 scrapy。

class MySpider(CrawlSpider):
name = 'myspider'
start_urls = ['https://stackoverflow.com/questions/']

def parse(self, response):
le = LinkExtractor()
for link in le.extract_links(response):
url_lnk = link.url
print (url_lnk)

这里我只收到起始页的问题。我需要做什么才能获得所有“问题”链接。时间并不重要,我只需要明白该做什么。

UPD

我要观察的网站是https://sevastopol.su/ - 这是本地的城市新闻网站。

所有新闻的列表应包含在此处:https://sevastopol.su/all-news

在此页面的底部,您可以看到页码,但如果我们转到新闻的最后一页,我们会看到它的编号为 765(现在为 2019 年 6 月 19 日),但它显示了最新的新闻并带有日期2018 年 6 月 19 日。因此最后一页仅显示一年前的新闻。但也有大量的新闻链接仍然有效(可能是 2010 年的),甚至可以在该网站的搜索页面中找到。这就是为什么我想知道是否可以访问该网站的某些全局链接存储。

最佳答案

您可能想要这样做以获得所提出的不同问题的所有链接。但是,我认为您的脚本可能会在执行过程中的某个地方出现 404 错误,因为有数百万个链接需要解析。

按原样运行脚本:

import scrapy

class StackOverflowSpider(scrapy.Spider):
name = 'stackoverflow'
start_urls = ["https://stackoverflow.com/questions/"]

def parse(self, response):
for link in response.css('.summary .question-hyperlink::attr(href)').getall():
post_link = response.urljoin(link)
yield {"link":post_link}

next_page = response.css("a[rel='next']::attr(href)").get()
if next_page:
next_page_url = response.urljoin(next_page)
yield scrapy.Request(next_page_url,callback=self.parse)

关于python - 如何使用python获取整个网站的所有页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56663789/

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