【问题标题】:Python: find all urls which contain stringPython:查找所有包含字符串的网址
【发布时间】:2016-09-20 13:05:00
【问题描述】:

我正在尝试在某个域中查找名称中包含某个字符串的所有页面。例如:

www.example.com/section/subsection/406751371-some-string 
www.example.com/section/subsection/235824297-some-string 
www.example.com/section/subsection/146783214-some-string

最好的方法是什么?

“-some-string”前面的数字可以是任意 9 位数字。我可以编写一个循环遍历所有可能的 9 位数字并尝试访问生成的 url 的脚本,但我一直认为应该有更有效的方法来做到这一点,特别是因为我知道总体上只有大约 1000 个可能以该字符串结尾的页面。

【问题讨论】:

  • 遍历 url 并检查每个 url:url.endswith('-some-string')
  • @MosesKoledoye 听起来他可能没有明确的列表来迭代
  • 你已经有一个 pyhton 脚本还是只有一个文本文件?
  • 不,网站上的任何地方都没有特定网址的列表。我确实考虑过在谷歌上寻找它们(然后从搜索结果中提取它们)。但是有更好的方法吗?
  • @RiccardoPetraglia 我没有脚本我什至不确定我需要的是构建一个爬虫(或者可能不是?)。我以前(使用scrapy)刮过网站,但我有一个网址列表或一个起始网址。现在我没有 url 列表,我知道它们存在,但除非我遍历所有可能的数字组合,否则我不知道如何找到实际的 url。

标签: python url


【解决方案1】:

我了解您的情况,-some-string 之前的数值是该网站的一种对象 id(例如,此问题的 id 为 39594926,url 为 stackoverflow.com/questions/ 39594926/python-find-all-urls-which-contain-string)

我认为没有办法找到所有有效号码,除非您有来自该网站的列表(或父级)页面列出了所有这些号码。再次以 Stackoverflow 为例,在问题列表页面中,您会看到所有这些问题 id。

如果您可以提供网站,我可以看看尝试找到这些数字的“模式”。对于一些简单的网站,该数字只是识别对象(可能是用户、问题或其他任何东西)的增量。

【讨论】:

  • 谢谢,但确实没有模式。这是一个新闻网站。他们每周发布随机数量的文章。每篇新文章都会获得下一个可用编号。他们每周都会发布一篇以“-some-string”结尾的文章,因此分配给这些文章的编号可以是任何内容。
【解决方案2】:

如果这些文章都链接到一个页面上,您可以解析该索引页面的 html,因为所有链接都将包含在 href 标记中。

【讨论】:

    猜你喜欢
    • 2013-05-13
    • 2011-03-11
    • 1970-01-01
    • 2015-07-16
    • 1970-01-01
    • 2016-03-03
    • 2012-06-28
    • 2020-05-26
    • 2022-09-28
    相关资源
    最近更新 更多