我正在尝试运行一个使用我的 sitemap.xml 的网站爬虫 我在 magento 上运行了清漆,我想在清理缓存后预热它。
我正在使用 松节油的热缓存脚本,但由于某种原因它得到 0 个 URL。
我的xml在这里
我对此进行了一些研究,但我无法想出一个 bash 脚本来获取我的 xml 中的 url.. 不幸的是我不是 Linux 专家。 您能帮我提供一些提示/文档链接吗?任何帮助将非常感激, 谢谢你。
稍后编辑:
当我运行 Warm-cache.sh 时,我得到
Getting URLs from sitemap...
Warming 0 URLs using 4 processes...
我还发现了一个不错的爬行脚本:
wget -O - easyfarm.ro/sitemap.xml | grep -E -o '<loc>.*</loc>' | sed -e 's/<loc>//g' -e 's/<\/loc>//g' | wget -i - -p -r -leve=2 --delete-after
但是,它也不会访问任何网址,我得到:
--2013-11-19 16:53:16-- http://easyfarm.ro/sitemap.xml
Resolving easyfarm.ro (easyfarm.ro)... 188.240.47.148
Connecting to easyfarm.ro (easyfarm.ro)|188.240.47.148|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/xml]
Saving to: `STDOUT'
[ <=> ] 7,703 --.-K/s in 0s
2013-11-19 16:53:17 (883 MB/s) - written to stdout [7703]
确保您已安装
xpath
并可供脚本使用。
更一般地说,确保脚本中调用的每个命令都可用 -
xpath
、curl
、sed
、grep
、cat
、xargs
、siege
、rm
。其中一些在大多数系统上默认可用,而另一些则不可用。
安装过程因每个发行版而异。例如,在 Ubuntu Linux 中,您可以使用
apt-get install libxml-xpath-perl
来获取 xpath
。
我们遇到了松节油加热问题,因此编写了我们自己的 bash 脚本。 它首先使用 wget 来获取 url 列表。 然后,它使用curl 来加热您正在运行的所有清漆缓存。
https://gist.github.com/jaseclamp/27c4b74e535ddd749bbe
如果您碰巧使用它,那里还有代码可以清除 mod pagespeed。 如果不适用可以注释掉。