【问题标题】:check if url exist at fanfiction.net检查 fanfiction.net 上是否存在 url
【发布时间】:2011-07-10 23:22:01
【问题描述】:

我想在 www.fanfiction.net 上找到一个故事的最后一章编号,只是为了好玩。为此,我认为由于它具有固定的 url 模式,我只会增加章节编号,直到它给我一个不存在的 url。

要查找该 url 是否存在,我在 stackoverflow ques 尝试了脚本

但是我发现它没有给出 > 400 的响应错误,而是给出了一条消息以及 200 响应。识别页面是否存在的最佳方法是什么。

这是一个实际存在的链接exists,这是一个不存在的链接does not exist

我该怎么做?

编辑 1

感谢 GregSchoen,我解决了这个问题。我希望它是正确的:)

我检查了 resp.getheader("last-modified", None) 的值,它给出了活动链接的一些日期,而那些没有的则没有。

非常感谢

【问题讨论】:

  • 或者您可以获取第一章,查找带有name="chapter"select 标记,并读取其中包含的每个option 元素的value 以获取章节列表。您可以使用 BeautifulSoup 来解析 HTML。

标签: python httplib


【解决方案1】:

如果您对您提供的 URL 执行 HEAD 请求,则 Last-Modified 会设置在有效页面上,但不会设置在无效页面上。这将是键入有效页面的一种简单方法,因为它们的服务器没有使用正确的 HTTP 代码进行响应。

【讨论】:

  • 嘿,你能解释一下吗...我如何检查标题中最后修改的变量?
【解决方案2】:

也许使用 cURL,读取 100 个字节,然后在数据开头查找“FanFiction.Net Message Type 1”?

【讨论】:

    【解决方案3】:

    该网站没有给出404 错误,这使得所有这些脚本都无用。您需要下载整个网页并检查它是否看起来像 404 页面。

    我想只是跑步:

    if (page.find('<style>') == 0):
    

    成功了,因为页面以&lt;style&gt; 标记开头(普通页面不应该)。

    【讨论】:

    • 除了下载整个页面之外,是否可以通过任何其他方法完成,因为我正在考虑逐步增加页码并查看它是否存在......
    • 并非如此,因为没有给出404 消息(未找到)。而是给出200 消息(成功)。您必须下载页面并检查它是否是错误页面......
    猜你喜欢
    • 2011-05-09
    • 1970-01-01
    • 2014-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-24
    • 2020-05-22
    • 2019-03-25
    相关资源
    最近更新 更多