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);