我使用wget
命令镜像网站。我为此写了一个脚本。该脚本每天通过crontab
获取该网站的副本。镜像存储在/var/www
下,以便从浏览器(localhost)进行访问。但我想从HTML文件中删除用户输入区域,如登录或搜索。我可以手动解析文件,但我想用脚本解析。你能救我吗?
答案 0 :(得分:0)
可能你正在寻找像这样的东西
cat your-html | sed -e 's/\<input.*type="text".*\>//g' | sed -e 's/\<input.*type="password".*\>//g' > new.html
答案 1 :(得分:0)
由于您没有告诉我们要解决的问题,我们无法帮助您了解具体信息,但要删除HTML文件树中任意位置的foo
和</bar>
,例如< / p>
find /var/www/mirror.example.com -type f -name '*.html' \
-exec sed -i 's/foo//;s%</bar>%%' {} \;
如果find
支持\+
而非\;
,则可以提高效率。
答案 2 :(得分:0)
您可以使用Ex编辑器就地编辑html页面,例如:
ex -V1 $PAGE <<-EOF
" Correcting missing protocol, see: https://github.com/wkhtmltopdf/wkhtmltopdf/issues/2359 "
%s,'//,'http://,ge
%s,"//,"http://,ge
" Correcting relative paths, see: https://github.com/wkhtmltopdf/wkhtmltopdf/issues/2359 "
%s,[^,]\zs'/\ze[^>],'http://www.example.com/,ge
%s,[^,]\zs"/\ze[^>],"http://www.example.com/,ge
" Remove the margin on the left of the main block. "
%s/id="doc_container"/id="doc_container" style="min-width:0px;margin-left : 0px;"/g
%s/<div class="outer_page/<div style="margin: 0px;" class="outer_page/g
" Remove useless html elements. "
/<div.*id="global_header"/norm nvatd
/<div class="header_spacer"/norm nvatd
/<div.*id="doc_info"/norm nvatd
/<div.*class="toolbar_spacer"/norm nvatd
/<div.*between_page_ads_1/norm nvatd
/id="leaderboard_ad_main">/norm nvatd
/class="page_missing_explanation/norm nvatd
/<div id="between_page_ads/norm nvatd
/<div class="b_..">/norm nvatd
/<div class="shadow_overlay">/norm nvatd
/grab_blur_promo_here/norm nvatd
/missing_page_buy_button/norm nvatd
wq " Update changes and quit.
EOF
对于多个文件,请使用bufdo
并通过xa
一次保存所有文件。
另见: