bash/curl:两步式web表单提交
我想在bash中按顺序在同一页上提交两个表单。 http://en.wikipedia.org/w/index.php?title=Special:Export包含两种形式:一种填充给定Wikipedia类别的页面列表,另一种填充该列表的XML数据。bash/curl:两步式web表单提交
使用在bash卷曲,我可以独立提交的第一种形式,返回与填充页面场HTML文件(虽然我不能使用它,因为它是当地的,而不是维基百科的服务器上):
curl -d "addcat=1&catname=Works_by_Leonardo_da_Vinci&curonly=1&action=submit" http://en.wikipedia.org/w/index.php?title=Special:Export -o "somefile.html"
而且我可以提交第二形式,而指定一个页面,以获取XML:
curl -d "pages=Mona_Lisa&curonly=1&action=submit" http://en.wikipedia.org/w/index.php?title=Special:Export -o "output.xml"
...但我无法弄清楚如何将两个步骤合并,或管道一进其他方面,返回一个类别中的所有页面的XML,就像我在执行两个步骤manu时得到的那样盟友。 http://www.mediawiki.org/wiki/Manual:Parameters_to_Special:Export似乎表明这是可能的;有任何想法吗?我不必使用卷曲或bash。
Special:Export
并不意味着完全自动检索The API是例如,要获得所有页面的当前文本中分类:可以通过达芬奇在XML工程格式,你可以使用这个网址:
这不会返回子类的网页,并仅限于第500页(虽然这不是在这种情况下,问题并没有访问的方式休息)。
假设你可以解析从第一个HTML文件的输出,并生成的页面(例如
Mona Lisa
The Last Supper
列表可以通过管道输出到使用read
一个bash循环作为一个简单的例子:
$ seq 1 5 | while read x; do echo "I read $x"; done
I read 1
I read 2
I read 3
I read 4
I read 5
有趣,谢谢! – meetar
美丽!正是我需要的。 – meetar