我当前使用此命令从站点提取URL
xidel https://www.website.com --extract "//h1//extract(@href, '.*')[. != '']"这将提取所有URL (.*),但我想以一种不提取URI路径中包含特定字符串的URL的方式进行更改。例如,我想提取除包含-text1-和-text2-的URL之外的所有URL
另外,xidel有一个叫做垃圾收集的函数,但我不清楚如何使用这些函数。我可能是
--extract garbage-collect()或
--extract garbage-collect()[0]或
x:extract garbage-collect()或
x"extract garbage-collect()但是当使用--follow从多个页面中提取URL时,这些方法并没有减少内存使用量。
发布于 2020-06-22 05:15:17
我刚注意到这个老问题。看起来OP的账号被暂停了,所以我希望下面的答案能对其他用户有所帮助。
让我们假设'test.htm‘:
<html>
<body>
<span class="a-text1-u">1</span>
<span class="b-text2-v">2</span>
<span class="c-text3-w">3</span>
<span class="d-text4-x">4</span>
<span class="e-text5-y">5</span>
<span class="f-text6-z">6</span>
</body>
</html>要提取除包含"-text1-“和”--nodes 2-“之外的所有”类“文本:
xidel -s test.htm -e "//span[not(contains(@class,'-text1-') or contains(@class,'-text2-'))]/@class"
#or
xidel -s test.htm -e "//@class[not(contains(.,'-text1-') or contains(.,'-text2-'))]"
c-text3-w
d-text4-x
e-text5-y
f-text6-zxidel有一个叫做垃圾收集的函数,但是我不清楚如何使用这些函数。
http://www.benibela.de/documentation/internettools/xpath-functions.html#x-garbage-collect
x:garbage-collect
(0个参数)
释放未使用的内存。始终将其调用为garbage-collect()[0],否则它可能会对自己的返回值进行垃圾回收并崩溃。
那就是-e "garbage-collect()[0]"。
https://stackoverflow.com/questions/56593193
复制相似问题