Я использую curl для получения информации из Википедии. До сих пор я успешно извлекал основную текстовую информацию, но я действительно хотел бы получить ее в HTML.
Вот мой код:
$s = curl_init();
$url = 'http://boss.yahooapis.com/ysearch/web/v1/site:en.wikipedia.org+'.$article_name.'?appid=myID';
curl_setopt($s,CURLOPT_URL, $url);
curl_setopt($s,CURLOPT_HEADER,false);
curl_setopt($s,CURLOPT_RETURNTRANSFER,1);
$rs = curl_exec($s);
$rs = Zend_Json::decode($rs);
$rs = ($rs['ysearchresponse']['resultset_web']);
$rs = array_shift($rs);
$article= str_replace('http://en.wikipedia.org/wiki/', '', $rs['url']);
$url = 'http://en.wikipedia.org/w/api.php?';
$url.='format=json';
$url.=sprintf('&action=query&titles=%s&rvprop=content&prop=revisions&redirects=1', $article);
curl_setopt($s,CURLOPT_URL, $url);
curl_setopt($s,CURLOPT_HEADER,false);
curl_setopt($s,CURLOPT_RETURNTRANSFER,1);
$rs = curl_exec($s);
//curl_close( $s );
$rs = Zend_Json::decode($rs);
$rs = array_pop(array_pop(array_pop($rs)));
$rs = array_shift($rs['revisions']);
$articleText = $rs['*'];
Однако текст, полученный таким способом, недостаточно хорош для отображения :( Все это в таком формате
'' 'Экс-ле-Бен' '' является [[Коммуны
Франция | коммуна] в [Савойя]
[[Отделы Франции | отдел]]
в [[Рона-Альпы]] [[районы
Франция | регион]] на юго-востоке
[[Франция]].
Он находится возле [[Lac du Bourget]],
{{конвертировать | 9 | км | ми | abbr = on}} по железной дороге
к северу от [[Шамбери]].
== История == '' Экс '' происходит от [[Latin]] '' Aquae '' (буквально,
«вода»; '' cf '' [[Aix-la-Chapelle]]
(Ахен) или [[Экс-ан-Прованс]]), и
Экс была баня во время [[Роман
Империя]], еще до того, как она была переименована
Aquae Gratianae, чтобы почтить память
[[Император Грациан]], который был
убит не далеко, в
[[Лион]], в [[383]]. Многочисленные римские
остается выжить. [[Image: IMG 0109 Озеро
Promenade.jpg | thumb | left | Lac du
Променад Бурже]]
Как мне получить HTML-код статьи в Википедии?
ОБНОВЛЕНИЕ: Спасибо, но я немного новичок в этом здесь и сейчас, я пытаюсь выполнить запрос xpath [хотя и в первый раз] и не могу получить никаких результатов. Мне действительно нужно знать кое-что здесь.
- Как запросить только часть статьи?
- Как получить HTML-код запрошенной статьи.
Я прошел этот url при извлечении данных из Википедии - он выдвинул идею сделать второй запрос к API-интерфейсу Википедии с извлеченным текстом Википедии в качестве параметров, который будет извлекать html - хотя он не имеет Похоже, это работает до сих пор :( - Я не хочу просто взять всю статью в виде беспорядка html и выбросить ее. По сути, мое приложение состоит в том, что у вас есть несколько местоположений и городов, отмеченных на карте - вы нажмите на маркер города, и он запросит через ajax подробности о городе, которые будут показаны в соседнем div. Эту информацию я хочу получить из википедии динамически. Я буду беспокоиться о работе со статьями, которые не существуют для конкретного город позже, просто нужно убедиться, что он работает на этом этапе.
Кто-нибудь знает хороший рабочий пример, который делает то, что я ищу, то есть читал и анализировал отдельные части статьи в википедии.
Согласно предоставленному URL - там написано, что я должен опубликовать вики-текст в расположении API википедии, чтобы он возвращал проанализированный html. Проблема в том, что, если я публикую информацию, я не получаю ответа и вместо этого получаю сообщение об ошибке, в котором мне отказано в доступе - однако, если я пытаюсь включить вики-текст как GET, он анализируется без проблем. Но это, конечно, не получается, когда у меня слишком много текста для анализа.
Это проблема с API википедии? Потому что я уже два дня хакнул на это без всякой удачи: (