2017-05-11 102 views
0

我想使用Beautifulsoup将本文的标题,文章,发布日期和作者提取到文本。实际上从本网站的更多文章,但我猜所有文章的布局是相同的?由于我对HTML没有任何知识,所以我不知道如何继续。使用Beautifulsoup和Python将文章从网站提取到文本

http://www.dn.se/nyheter/sverige/mp-vill-snabba-pa-miljardsatsning-pa-svaga-skolor/

我已检查了HTML代码,但不明白它。我想如果有人可以为此发布代码,我可以弄清楚如何提取其他信息。

提前致谢!

回答

0
import requests 
from bs4 import BeautifulSoup 

the_url = requests.get("http://www.dn.se/nyheter/sverige/mp-vill-snabba-pa-miljardsatsning-pa-svaga-skolor/").text 
soup = BeautifulSoup(the_url,'html.parser') 

title = soup.title 
article_headline = soup.find('h1',{'class':'article__headline'}).text 

我找不到文章本身(没有登录),也没有作者,也没有发布日期。但几乎你找到的元素,让我们说 This ONE你有标签和容器如图所示(框)。我们如何在BeautifulSoup a = soup.find('div',{'class':'article__lead'})中找到该标签,并将其保存在变量a中。现在,如果我们想要段落(文本),我们可以简单地说print(a.p.text)其中.p使我们看到段落,而.text仅让我们看到没有标签的文本。

1

您应该尝试检查所需数据的HTML代码,尝试在作者姓名的HTML代码中查找,源代码中的简单Ctrl+F: Hans将执行此操作。你会看到,在第一时间"Hans"可以在源代码中发现在这段代码:

<div class="js-article" 
    data-page-title="Milj&#246;partiet vill f&#229; med miljardsatsning p&#229; skolor redan i h&#246;stbudgeten - DN.SE" 
    data-article-url="/nyheter/sverige/mp-vill-snabba-pa-miljardsatsning-pa-svaga-skolor/" 
    data-authors="Hans Ros&#233;n" 
    data-section-display-name="Sverige" 
    data-article-friendly-id="dn.epi.1739446" 
    data-article-title="MP vill snabba p&#229; miljardsatsning p&#229; svaga skolor" 
    data-article-publish-date="2017-05-11" 
    data-article-publish-time="19:53" 
    data-is-premium="true" 
    data-access-level="Limited" 
    data-is-standalone="false" 
    data-article-main-section="nyheter" 
    data-article-sub-section="sverige"> 

注意文章的日期冠军已经在这段代码。转入下一个是学习Python代码来提取这片从网站的信息,我们就可以开始:

import requests 
from bs4 import BeautifulSoup 

r = requests.get("http://www.dn.se/nyheter/sverige/mp-vill-snabba-pa-miljardsatsning-pa-svaga-skolor/") 
data = r.text 
soup = BeautifulSoup(data, 'html.parser') 

article_data = soup.find("div", class_="js-article") 

现在我们可以做到这一点,以提取精确的数据:

title = article_data["data-article-title"] 
date = article_data["data-article-publish-date"] 
time = article_data["data-article-publish-time"] 
author = article_data["data-authors"] 

尝试使用类似的方法来提取物品的整个身体,你会看到身体内div class="article__body-content"源代码,并提取我们可以简单地使用soup.find()

article_body = soup.find("div", class_="article__body-content") 
+1

谢谢,这正是我需要开始的!并为快速回复。 – Lamar

+0

答案要好得多。请注意,您的帖子可能会被删除。这不是一个正在寻找解决方案的问题。您正在寻找某人为自己做,并且可以重复使用。 因此,这个问题太宽泛(不具体也没有帮助)给你。 学习Python和BeautifulSoup会更好,有很多Youtube视频,非常有帮助。请回来一个更具体的问题, –

+0

@FaultyFuse准确地说,我想到了标记问题,但我试图解释如何解析HTML,因为他不知道在代码中寻找他想要的数据的位置。 –

相关问题