问题
I want to search Wikipedia using the query
action. I am using this url:
http://en.wikipedia.org/w/api.php?action=query&format=json&list=search&srsearch=apple
That works but I want to get into the first result of the search. How can I do that?
Note: That url works fine when there is only one result.. I just need the title and some short description.
回答1:
I don't think you can do both in one query.
1. To get the first result, use the Opensearch API.
https://en.wikipedia.org/w/api.php?action=opensearch&search=zyz&limit=1&namespace=0&format=jsonfm
https://en.wikipedia.org/w/api.php
?action=opensearch
&search=zyz # search query
&limit=1 # return only the first result
&namespace=0 # search only articles, ignoring Talk, Mediawiki, etc.
&format=json # jsonfm prints the JSON in HTML for debugging.
This will return:
[
"Zyz",
[
"Zyzomys"
],
[
""
],
[
"https://en.wikipedia.org/wiki/Zyzomys"
]
]
2. You now have the article name of the first search result. To get the article's first paragram (or description, as you call it), see my answer here: https://stackoverflow.com/a/19781754/908703
回答2:
actually the wikipedia json api works with a right query only, so I recommend to use the wikipedia search and crawl the actual article and parse it with BeautifulSoup
https://en.wikipedia.org/w/index.php?search=QUERY&title=Special:Search&fulltext=Search
and also there is module call wikipedia does this for you
来源:https://stackoverflow.com/questions/27457977/searching-wikipedia-using-api