Dal*_*ser 43 html web-scraping
我正在寻找一个程序来提取和下载整个公司网站的建议.
该网站由一个已经停止工作的CMS提供支持并且修复它是昂贵的,我们能够重新开发该网站.
因此,我想将整个网站视为简单的html/css/image内容,并根据需要对其进行细微更新,直到新网站出现.
任何推荐?
Abh*_*ogi 61
wget \
--recursive \
--no-clobber \
--page-requisites \
--html-extension \
--convert-links \
--restrict-file-names=windows \
--domains website.org \
--no-parent \
www.website.com
Run Code Online (Sandbox Code Playgroud)
在这里阅读更多相关信息.
Tyl*_*nis 33
以上都没有得到我所需要的(整个网站和所有资产).这虽然有效.
首先,按照本教程获取OSX上的wget.
然后运行它
wget --recursive --html-extension --page-requisites --convert-links http://website.com
Run Code Online (Sandbox Code Playgroud)
T0n*_*rdi 27
我知道这是超级老,我只想把我的2美分.
wget -m -k -K -E -l 7 -t 6 -w 5 http://www.website.com
关于每个开关的一点说明:
-m从本质上讲,这意味着"镜像站点",并且当它通过站点时,它会递归地抓取页面和图像.它会检查时间戳,因此如果您使用此开关第二次运行wget,它将只更新比上一次更新的文件/页面.
-k这将修改html中的链接以指向本地文件.如果不是page2.html在整个网站中使用类似链接的东西而是实际使用完整的,http://www.website.com/page2.html那么您可能需要/想要这个.我打开它只是为了安全起见 - 否则至少有1个链接会导致问题.
-K上面的选项(小写k)编辑html.如果您还想要"未触动"的版本,请使用此开关,它将保存更改的版本和原始版本.这是一个很好的做法,如果出现问题,你想要比较两个版本.您可以随时删除以后不想要的那个.
-E这样就可以通过"适当的扩展"来保存HTML和CSS.小心这一点 - 如果您的网站在每个页面上都没有.html扩展名,那么这将添加它.但是,如果您的网站已经包含了名为".htm"的文件,那么您现在最终会得到".htm.html".
-l 7默认情况下,我们上面使用的-m将递归/蜘蛛整个站点.通常没关系.但有时你的网站将有一个无限循环,在这种情况下wget将永远下载.想想典型的website.com/products/jellybeans/sort-by-/name/price/name/price/name/price例子.现在这种情况有点罕见 - 大多数网站表现都很好而且不会这样做,但为了安全起见,找出从主页到达网站上任何真实页面所需的最多点击次数,填充它有点(如果你使用7的值并且一小时后发现你的网站是8级深度就会很糟糕!)然后使用#.当然,如果你知道你的网站有一个可以表现的结构,那么省略这一点并且知道你的网站上有一个50级深度的隐藏页面确实被发现并没有错.
-t 6如果尝试访问/下载某个页面或文件失败,则会在放弃该文件并继续之前设置重试次数.你通常希望它最终放弃(如果你想让它永远尝试,把它设置为0),但你也不希望它放弃,如果该网站只是一两秒钟.我发现6是合理的.
-w 5这告诉wget在抓取下一个文件之前等待几秒钟(在这种情况下为5秒).在这里使用一些东西(至少1秒钟)通常很关键.让我解释.默认情况下,wget会尽可能快地抓取页面.这很容易就是每秒多次请求,这可能会给服务器带来巨大的负担(特别是如果站点是用PHP编写的,那么对每个请求进行MySQL访问,并且不使用缓存).如果该网站位于共享主机上,则该负载可能会有人从其主机上踢出.即使在VPS上它也可以让一些网站瘫痪.即使网站本身存在,在几秒钟内被疯狂的请求轰炸也可能看起来像DOS攻击,很可能会让你的IP自动被阻止.如果您不确定该站点是否可以处理大量流量,请使用-w#switch.5通常非常安全.大多数时候,即使1也可能是好的.但要用点东西.
| 归档时间: |
|
| 查看次数: |
53012 次 |
| 最近记录: |