2017-05-11 7 views
0

Beautifulsoupを使用して、タイトル、記事、投稿日付、およびこの記事の著者を抽出します。実際にはこのウェブサイトの記事が増えていますが、レイアウトはすべての記事で同じですね。私はHTMLに何も知識を持っていないので、どのように進むべきかわかりません。BeautifulsoupとPythonを使用して、Webサイトからテキストに記事を抽出します。

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'})でどのように見つけられ、変数に保存されました。です。ここで段落(テキスト)が必要ならば、単に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を解析する方法を説明しようとしました。 –

関連する問題