如何搜索特定类型的网址?

时间:2010-02-23 14:49:00

标签: regex grep

2 个答案:

答案 0 :(得分:1)

通常grep -E "http://en.wikipedia.org/wiki/10*_\(number\)" list_of_urls

但是如果你想知道一些网站是否在某种格式的网址上展示了一些内容,你就有了一些可能性。

  1. 有一些站点地图,您可以在其中获取list_of_urls并在grep中使用它。 (http://en.wikipedia.org/wiki/Special:AllPages
  2. 你必须建立一个列表 这些地址并尝试它们。 HTTP服务器没有标准的方式来宣传其所有页面。
  3. 谷歌的方式 - 按照链接抓取网站,以便您可以找到它拥有的所有公共页面,然后在您构建的列表中搜索。
  4. 此外,Google支持allinurl:site:个关键字,他们也可以为您提供帮助。

答案 1 :(得分:1)

我看到要解决的两个问题。

第一个:您没有世界上所有网址的真实中心目录,即使您不知道每个网站都有自己的网站地图

一个想法是检查搜索引擎(Google或其他)是否允许您在URL级别而不是内容级别进行搜索。然后,您将生成搜索查询,该查询可以返回与您的正则表达式匹配的网站列表并尝试执行此操作。

第二个:对于某些可能将函数公开为资源的Web服务,您可能有一个与正则表达式匹配的无限URL列表

您可以使用多项检查来避免这种情况。

顺便说一句,您面临着与每个搜索引擎相同的问题......制作所有网络的清单。没有人解决过这个问题。

编辑: webcrawler基本算法

take a list of seed sites
for each seed
  parse the webpage returned
  add each link found in the page to the seed list
  apply some algorithms for referencing the page to several keywords in a db