在Newspaper3k中从MySQL解析HTML字符串

时间:2018-09-04 10:20:51

标签: python-3.x python-newspaper

我有一个MySQL表,其中充满了已爬网的新闻HTML数据。我想用我以前做过很多次的报纸3k模块提取文章文本。

现在唯一的区别是我没有提取URL并用Newspaper解析结果,而是从MySQL DB中提取原始HTML字符串。

Somehow Newspaper(或Goose)不喜欢数据库中的字符串,因为返回的文章。文本始终为''

但是,当我在request.get中使用URL并将原始HTML馈送给Newspaper时,它将起作用。因此,我猜测来自MySQL的数据的格式/编码方式有所不同,从而使Newspaper无法将其理解为HTML?!

当我从数据库打印数据时,它看起来像:

<!DOCTYPE html>\n<html lang="de">\n<head>\n\n<...

通过requests.get生成的HTML如下:

<!DOCTYPE html>
<html lang="de">
<head>

<meta charset="utf-8">
<!-- 
    This website is powered by TYPO3 - inspiring people to share!
    TYPO3 is a free open source Content Management Framework initially created by Kasper Skaarhoj and licensed under GNU/GPL.
    TYPO3 is copyright 1998-2016 of Kasper Skaarhoj. Extensions are copyright of their respective owners.
    Information and contribution at http://typo3.org/
--> ...

2 个答案:

答案 0 :(得分:1)

您将获得TYPO3页面的标题。也许是默认的404页面。 (获取完整的HTML)

如果您的请求应由TYPO3以外的任何其他设备处理,则会错过(htaccess-)配置(默认情况下,只要没有带有URL请求路径的静态文件,TYPO3都会回答每个请求)

还是您希望TYPO3服务器用完整页面(AJAX:HTML-Snippet或JSON?)之外的其他内容来回答您?
这样一来,您可能在TYPO3中没有正确的配置来省略标题。

由于涉及TYPO3,因此您也可以使用TYPO3

标记问题

答案 1 :(得分:0)

我自己解决了。谢谢大家。

原来,我只需要在数据库中的HTML上使用BeautifulSoup 把它当汤喝现在可以了。