0

使用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我尝试了很多选项,对各种字符使用胡萝卜,对 [] 使用反斜杠,但不断出现更多错误。

是否有某个角色需要转义或更多,或者根本不是这种情况?

4

1 回答 1

1

我现在明白了,我错误地认为您使用的是 Linux。在这种情况下,您必须修复引用(参见示例#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 为您分配变量。

于 2018-08-19T22:24:54.867 回答