scrape链接来自www,另存为txt文件(bash或python)



我在家中有一个小项目,我需要偶尔刮去一个网站以进行链接,然后将链接保存在TXT文件中。

脚本需要在我的Synology NAS上运行,因此,无需使用任何插件或外部库即可以Bash脚本或Python编写脚本,因为我无法将其安装在NAS上。(无论如何我都知道)

链接看起来像这样:

<a href="http://www.example.com">Example text</a>

我想将以下内容保存到我的文本文件中:

Example text - http://www.example.com

我以为我可以用卷发和一些Grep(或Regex)隔离文本。首先,我研究了使用零食或Beutifulsoup,但找不到将其安装在NAS上的方法。

你们中的一个可以帮助我将脚本放在一起吗?

您可以使用python免费运送的urllib2。使用它,您可以轻松获取任何URL

的HTML
import urllib2
response = urllib2.urlopen('http://python.org/')
html = response.read()

现在,关于解析HTML。您仍然可以在不安装它的情况下使用BeautifulSoup。从他们的网站上说:" 您还可以在项目中直接下载tarball并在项目中使用BeautifulSoup.py"。因此,在Internet上搜索该BeautifulSoup.py文件。如果找不到它,请下载此并保存到项目内的本地文件中。然后像下面一样使用它:

soup = BeautifulSoup(html)
for link in soup("a"):
    print link["href"]
    print link.renderContents()

我建议使用python的htmlparser库。它将该页面分析为您的对象层次结构。然后,您可以找到A HREF标签。

http://docs.python.org/2/library/htmlparser.html

有很多使用此库查找链接的示例,因此我不会列出所有代码,但是这是一个工作示例:使用htmlparser

从页面中提取绝对链接

编辑:

正如Oday指出的那样,HTMLPARSER是一个外部库,您可能无法加载它。在这种情况下,以下是内置模块的两个建议,可以完成您需要的事情:

  • htmllib包含在Python 2.x中。

  • xml包含在Python 2.x和3.x中。

在本网站其他地方也有一个很好的解释,即如何使用WGET&amp;grep做同样的事情:
蜘蛛网站并仅返回URL

基于您的示例,您需要这样的东西:

wget -q -O- https://dl.dropboxusercontent.com/s/wm6mt2ew0nnqdu6/links.html?dl=1 | sed -r 's#<a href="([^"]+)">([^<]+)</a>.*$#2 - 1#' > links.txt

cat links.txt 输出:

1Visit W3Schools - http://www.w3schools.com/
2Visit W3Schools - http://www.w3schools.com/
3Visit W3Schools - http://www.w3schools.com/
4Visit W3Schools - http://www.w3schools.com/
5Visit W3Schools - http://www.w3schools.com/
6Visit W3Schools - http://www.w3schools.com/
7Visit W3Schools - http://www.w3schools.com/

相关内容

  • 没有找到相关文章

最新更新