gpt4 book ai didi

python - 检查 404 错误 scrapy 的 url

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

我正在浏览一组页面,我不确定有多少,但当前页面由 url 中的一个简单数字表示(例如“http://www.website.com/page/1”)

我想在 scrapy 中使用 for 循环来增加页面的当前猜测并在它到达 404 时停止。我知道从请求返回的响应包含此信息,但我不确定如何自动从请求中获取响应。

关于如何做到这一点有什么想法吗?

目前我的代码是这样的:

def start_requests(self):
baseUrl = "http://website.com/page/"
currentPage = 0
stillExists = True
while(stillExists):
currentUrl = baseUrl + str(currentPage)
test = Request(currentUrl)
if test.response.status != 404: #This is what I'm not sure of
yield test
currentPage += 1
else:
stillExists = False

最佳答案

你可以这样做:

from __future__ import print_function
import urllib2

baseURL = "http://www.website.com/page/"

for n in xrange(100):
fullURL = baseURL + str(n)
#print fullURL
try:
req = urllib2.Request(fullURL)
resp = urllib2.urlopen(req)
if resp.getcode() == 404:
#Do whatever you want if 404 is found
print ("404 Found!")
else:
#Do your normal stuff here if page is found.
print ("URL: {0} Response: {1}".format(fullURL, resp.getcode()))
except:
print ("Could not connect to URL: {0} ".format(fullURL))

这遍历范围并尝试通过 urllib2 连接到每个 URL。我不知道 scapy 或您的示例函数如何打开 URL,但这是一个如何通过 urllib2 打开 URL 的示例。

请注意,大多数使用此类 URL 格式的网站通常都运行 CMS,该 CMS 可以自动将不存在的页面重定向到自定义 404 - Not Found 页面,该页面仍将显示为 HTTP状态代码 200。在这种情况下,查找可能显示但实际上只是自定义 404 页面的页面的最佳方法是,您应该进行一些屏幕抓取并查找在“正常”页面期间可能不会出现的任何内容返回诸如“找不到页面”的文本或与自定义 404 页面类似且独特的内容。

关于python - 检查 404 错误 scrapy 的 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15865611/

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