InstaPaper API - /api/1/bookmarks/get_text

Я работаю с API InstaPaper

Я использую эту строку, чтобы вытащить содержание статьи.

$Bookmark_Text = $connection->getBookmarkText($Bookmark['bookmark_id']);

К сожалению, он тянет весь HTML и в основном помещает структуру HTML в мой HTML.

Пример.

<html>
<head></head>
<body>
    <html>
    <head>Instapaper Title</head>
    <body>InstaPaper Article Content</body>
    </html>
</body>
</html>

Любые мысли о том, как просто получить "контент статьи Instapaper"

Спасибо!

2 ответа

Вот некоторый код JS, который извлекает только статью и удаляет материал Instapaper (например, верхняя и нижняя строка).

html.replace(/^[\s\S]*<div id="story">|<\/div>[^<]*<div class="bar bottom">[\s\S]*$/gim, '');

Имейте в виду, что это может измениться при изменении вывода HTML в Instapaper.

Используйте парсер для извлечения содержимого <body>, В PHP есть некоторые встроенные, но есть и другие, которые могут быть проще в использовании.

Это должно сделать это, если $Bookmark_Text является действительным документом HTML.

$dom = new DOMDocument();
$dom->loadHTML($Bookmark_Text);
$body = $dom->getElementsByTagName('body')->item(0);
$content = $body->ownerDocument->saveHTML($body);
Другие вопросы по тегам