Bash 脚本缓存温暖忽略 Magento XML 站点地图中的 URL?

问题描述 投票:0回答:2

我正在尝试运行一个使用我的 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]
bash magento caching web-crawler
2个回答
3
投票

确保您已安装

xpath
并可供脚本使用。

更一般地说,确保脚本中调用的每个命令都可用 -

xpath
curl
sed
grep
cat
xargs
siege
rm
。其中一些在大多数系统上默认可用,而另一些则不可用。

安装过程因每个发行版而异。例如,在 Ubuntu Linux 中,您可以使用

apt-get install libxml-xpath-perl
来获取
xpath


0
投票

我们遇到了松节油加热问题,因此编写了我们自己的 bash 脚本。 它首先使用 wget 来获取 url 列表。 然后,它使用curl 来加热您正在运行的所有清漆缓存。

https://gist.github.com/jaseclamp/27c4b74e535ddd749bbe

如果您碰巧使用它,那里还有代码可以清除 mod pagespeed。 如果不适用可以注释掉。

© www.soinside.com 2019 - 2024. All rights reserved.