输入网站网址并接收指定网址链接的网站上的每个网址,最简单的语言或方法是什么?例如,如果我想在我的网站上看到有多少次链接到名为oranges的页面,我会使用它。
我会输入程序“http://www.mysite.com”和我想要搜索“http://www.mysite.com/oranges”的URL,我会运行该程序。作为回报,我会得到一个文本文件或其他文件,其中包含指向“http://www.mysite.com/oranges”链接的所有URL。
输入可能是:
http://www.mysite.com http://www.mysite.com/oranges
输出可能是:
http://www.mysite.com/index.html
http://www.mysite.com/broccoli.html
http://www.mysite.com/asparagus.html
http://www.mysite.com/fruits.html
http://www.mysite.com/blog/post/my_favorite_fruits.html
到目前为止,我已经尝试了我个人的最爱:批处理,并提出以下不成功的程序:
FOR /F %%A in (input.txt) DO (
curl -o temp.html %%A
FOR /F "tokens=1,2 delims=:" %%B in ('FINDSTR /I /R "http://.*" temp.html') DO (
ECHO %%B >> input.txt
FOR /F %%C in (temp.html) DO (
FINDSTR /X "http://.*" %%C >> output.txt
)
)
)
exit
如上所述,它并没有真正起作用。
有什么想法吗?这不是一个家庭作业,这是一个工作项目,这让我疯了!
先谢谢你们提供任何帮助。如果我需要更具体地了解任何事情,请告诉我们!
答案 0 :(得分:1)
据我所知,您可以做的最好的算法是抓取该网址的index.html并在HTML中搜索链接和可能的网站地图。(基本上创建自己的网站地图)。无法保证您会找到所有内容,因为大多数开发人员都有隐藏的东西。(取消链接等)。您可以创建一个递归方法来执行我上面谈到的内容。
答案 1 :(得分:1)
尝试Scrapy http://scrapy.org/。它是一个python框架,可以帮助从开始URL抓取html内容并抓取它们。
它还会递归抓取已删除的链接,并且具有最佳算法,不会复制已爬网的网址。 该文档易于理解并创建一个简单的程序。