使用Xidel抓取HTML:
for /f "usebackqDELIMS=" %a in (`^"xidel -s file.html -e 'json(//script[@type="application/ld+json"])/(string)()'^"`) do set "string=%a"
在CMD输出中运行它时,会给出:
/(string)()'“`)此时是意外的。
我假设我需要转义一些字符,在遵循本文档http://www.robvanderwoude.com/escapechars.php之后,我尝试了很多选择,将胡萝卜用于各种字符,将反斜杠用于[],但仍然会出现更多错误。
是否存在某个需要转义或更多的字符,或者根本不是这种情况?
答案 0 :(得分:1)
我现在看到I wrongfully assumed you were on Linux。在这种情况下,您必须修正引号(请参见Examples#9和#10):
FOR /F "delims=" %%A IN ('xidel -s file.html -e "json(//script[@type='application/ld+json'
])/(string)()"') DO SET "string=%%A"
或
FOR /F "delims=" %%A IN ('xidel -s file.html -e "string:=json(//script[@type='application/
ld+json'])/(string)()" --output-format^=cmd') DO %%A
让Xidel为您分配变量。