这种 cli html 解析正是我编写Xidel的目的。(而且它使用 xpath 而不是正则表达式,所以你不会召唤Cthulhu ......(太晚了,他已经在那里了,我刚去我的浴室,有这个非常奇怪的声音......))
如果您只需要ID
使用它们来解析相应的网页。
您可以只关注链接,而不是显式提取 id。
例如打印所有链接页面的标题
xidel 'http://subtitle.co.il/browsesubtitles.php?cs=movies' -f '//a[starts-with(@href,"list.php")]' -e //title
//a
通过跟踪其目的地的所有链接starts-with(@href,"list.php")
。(-f
表示跟随链接,-e
:表示提取数据。)
或者,如果您想提取视图 url 上的大文本块:(不懂语言,不知道它在说什么......)
xidel 'http://subtitle.co.il/browsesubtitles.php?cs=movies' -f '//a[starts-with(@href,"list.php")]/replace(@href, "list.php[?]mid=", "view.php?id=")' -e 'css("#profilememo")'
或者如果你真的需要单独的 id,你可以先提取它们:
xidel 'http://subtitle.co.il/browsesubtitles.php?cs=movies' -e '//a[starts-with(@href,"list.php")]/substring-after(@href,"mid=")' -f '//a[starts-with(@href,"list.php")]' -e //title
或者更容易使用临时变量links
来存储所有链接:
xidel 'http://subtitle.co.il/browsesubtitles.php?cs=movies' -e '(links:=//a[starts-with(@href,"list.php")])[0]' -e '$links/substring-after(@href,"mid=")' -f '$links' -e //title