2017-05-11 94 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,因爲他不知道在代碼中尋找他想要的數據的位置。 –

相關問題