質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

Beautiful Soup

Beautiful Soupは、Pythonのライブラリの一つ。スクレイピングに特化しています。HTMLデータの構文の解析を行うために、HTMLタグ/CSSのセレクタで抽出する部分を指定することが可能です。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

2047閲覧

pythonのスクレイピングでhrefのリンクを取得したい

markern

総合スコア1

スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

Beautiful Soup

Beautiful Soupは、Pythonのライブラリの一つ。スクレイピングに特化しています。HTMLデータの構文の解析を行うために、HTMLタグ/CSSのセレクタで抽出する部分を指定することが可能です。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/12/01 14:02

質問

初めてpythonでスクレイピングをしようと、日本経済新聞のサイトを使って勉強中なのですが
記事のリンクを取得しようとすると[]だけ表示されてしまいます。
キレイではないコードの書き方で恐縮ですが、リンクを正しく取得する方法をご教授いただけますでしょうか!

あとテキストだけ抽出したいのですが、適切な方法があればご教授願いたいです。。。
下記以外にも回答に必要な情報があれば気軽に書いていただければと思います!

よろしくお願いいたしますm(--)m

該当のソースコード

from bs4 import BeautifulSoup from urllib import request url = 'https://www.nikkei.com/' response = request.urlopen(url) soup = BeautifulSoup(response, 'html.parser') top = soup.find('div',class_='k-hub-layout__container--headline') col = top.find_all('div',class_='k-hub-layout__column--m-6') articles = [] for i in col: title = i.select('span.k-v') desc = i.select('li.k-card__tag') link = i.select('href') articles.append(f'{title}:{desc}:{link}') for article in articles: print(article)

上記のコードで出力される結果

[<span class="k-v">ドンキ前社長を本格捜査へ、株不正推奨の疑い 東京地検</span>]:[<li class="k-card__tag"><a href="/business/consumer-products/">小売り・外食</a><a href="/society/">社会・くらし</a></li>]:[] [<span class="k-v">「GoTo東京、高齢者ら自粛を」 首相が都知事と会談</span>]:[<li class="k-card__tag"><a href="/theme?dw=20012202">新型コロナ</a><a href="/local/tokyo/">東京</a><a href="/local/kanto/">関東</a><a href="/politics/politics/">政治</a></li>]:[] [<span class="k-v">20年ヒット商品番付 巣ごもりで生活デジタル化</span>]:[<li class="k-card__tag"><a href="/business/internet/">ネット・IT</a><a href="/business/services/">サービス・食品</a><a href="/business/consumer-products/">小売り・外食</a></li>]:[] [<span class="k-v">ドコモ、携帯料金下げへ 廉価ブランドも導入</span>]:[<li class="k-card__tag"><a href="/theme?dw=18082900">携帯料金見直し</a><a href="/business/internet/">ネット・IT</a></li>]:[] [<span class="k-v">国内コロナ感染15万人超 死者41人、重症493人で最多</span>]:[<li class="k-card__tag"><a href="/theme?dw=20012202">新型コロナ</a><a href="/society/">社会・くらし</a></li>]:[] [<span class="k-v">非正規雇用、男性33万人減・女性53万人減 10月</span>]:[<li class="k-card__tag"><a href="/society/">社会・くらし</a></li>]:[] [<span class="k-v">銀行の新卒採用、春に限らず 通年や年6回選考に</span>]:[<li class="k-card__tag"><a href="/theme?dw=17090316">就活</a><a href="/economy/monetary/">金融機関</a></li>]:[] [<span class="k-v">東京都、新たに372人感染 新型コロナ</span>]:[<li class="k-card__tag"><a href="/theme?dw=20012202">新型コロナ</a><a href="/local/tokyo/">東京</a><a href="/local/kanto/">関東</a><a href="/society/">社会・くらし</a></li>]:[] [<span class="k-v">社長も社員も全員副業 ひとつの会社に頼らない働き方</span>]:[<li class="k-card__tag"><a href="https://style.nikkei.com/">ライフ</a></li>]:[] [<span class="k-v">大阪万博、25年開催承認 準備へ資金や時間の壁</span>]:[<li class="k-card__tag"><a href="/theme?dw=18092700">2025年 万博</a><a href="/local/osaka/">大阪</a><a href="/local/kansai/">関西</a><a href="/economy/economic/">経済</a><a href="/society/">社会・くらし</a></li>]:[] [<span class="k-v">ネットフリックス、経団連に入会</span>]:[<li class="k-card__tag"><a href="/business/internet/">ネット・IT</a></li>]:[] [<span class="k-v">冬の暖房、どうする換気 対応エアコンの選択肢広がる</span>]:[<li class="k-card__tag"><a href="https://style.nikkei.com/">ライフ</a></li>]:[] [<span class="k-v">マンション購入 公式サイトでもわかる「危ない」物件</span>]:[<li class="k-card__tag"><a href="https://style.nikkei.com/">ライフ</a></li>]:[] [<span class="k-v">東証の大納会、ゲストなし 大発会は晴れ着「自粛」</span>]:[<li class="k-card__tag"><a href="/economy/monetary/">金融機関</a><a href="/markets/">マーケット</a></li>]:[] [<span class="k-v">消える成人式、広がる落胆 札幌でオンライン式典も</span>]:[<li class="k-card__tag"><a href="/theme?dw=20012202">新型コロナ</a><a href="/local/hokkaido/">北海道</a><a href="/business/services/">サービス・食品</a><a href="/business/consumer-products/">小売り・外食</a></li>]:[] [<span class="k-v">流行語年間大賞に「3密」 コロナ関連の入賞多く</span>]:[<li class="k-card__tag"><a href="/theme?dw=20012202">新型コロナ</a><a href="/society/">社会・くらし</a></li>]:[] []:[]:[] []:[]:[]

出したいもの

ドンキ前社長を本格捜査へ、株不正推奨の疑い 東京地検:小売り・外食 社会・くらし:https://www.nikkei.com/article/DGXMZO66851700R01C20A2000000/ 「GoTo東京、高齢者ら自粛を」 首相が都知事と会談:新型コロナ 東京 関東 政治 :https://www.nikkei.com/article/DGXMZO66862850R01C20A2MM8000/ 20年ヒット商品番付 巣ごもりで生活デジタル化:ネット・IT サービス・食品 小売り・外食 :https://www.nikkei.com/article/DGXMZO66812920Q0A131C2EA2000/ ドコモ、携帯料金下げへ 廉価ブランドも導入:携帯料金見直し ネット・IT:https://www.nikkei.com/article/DGXMZO66833950Q0A131C2MM8000/ 国内コロナ感染15万人超 死者41人、重症493人で最多:新型コロナ 社会・くらし:https://www.nikkei.com/article/DGXMZO66866280R01C20A2CC1000/ 非正規雇用、男性33万人減・女性53万人減 10月:社会・くらし:https://www.nikkei.com/theme/?dw=20012202 銀行の新卒採用、春に限らず 通年や年6回選考に:就活 金融機関:https://www.nikkei.com/article/DGXMZO66854050R01C20A2EE9000/ 東京都、新たに372人感染 新型コロナ:新型コロナ 東京 関東 社会・くらし :https://www.nikkei.com/article/DGXMZO66851400R01C20A2CC1000/ 社長も社員も全員副業 ひとつの会社に頼らない働き方:ライフ:https://style.nikkei.com/article/DGXMZO66620470V21C20A1000000 大阪万博、25年開催承認 準備へ資金や時間の壁:2025年 万博 大阪 関西 経済 社会・くらし:https://www.nikkei.com/article/DGXMZO66870550R01C20A2AC8Z00/ ネットフリックス、経団連に入会:ネット・IT:https://www.nikkei.com/article/DGXMZO66866120R01C20A2X30000/ 冬の暖房、どうする換気 対応エアコンの選択肢広がる:ライフ:https://style.nikkei.com/article/DGXMZO66308170X11C20A1000000 マンション購入 公式サイトでもわかる「危ない」物件:ライフ:https://style.nikkei.com/article/DGXMZO66550200U0A121C2000000 東証の大納会、ゲストなし 大発会は晴れ着「自粛」:金融機関 マーケット:https://www.nikkei.com/article/DGXMZO66851010R01C20A2000000/ 消える成人式、広がる落胆 札幌でオンライン式典も:新型コロナ 北海道 サービス・食品 小売り・外食:https://www.nikkei.com/article/DGXMZO66866600R01C20A2L41000/ 流行語年間大賞に「3密」 コロナ関連の入賞多く:新型コロナ 社会・くらし:https://www.nikkei.com/article/DGXMZO66846550R01C20A2000000/

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

python

1from bs4 import BeautifulSoup 2from urllib import request 3 4url = 'https://www.nikkei.com/' 5response = request.urlopen(url) 6soup = BeautifulSoup(response, 'html.parser') 7 8top = soup.find('div',class_='k-hub-layout__container--headline') 9col = top.find_all('div',class_='k-hub-layout__column--m-6') 10 11articles = [] 12 13for i in col: 14 title = i.select('span.k-v') 15 if len(title) > 0: 16 title = title[0].text 17 desc = i.select('li.k-card__tag') 18 desc = desc[0].text 19 link = i.select('a')[0].get('href') 20 if link.startswith('/'): 21 link = 'https://www.nikkei.com' + link 22 articles.append(f'{title}:{desc}:{link}') 23 24for article in articles: 25 print(article)

投稿2020/12/01 14:37

meg_

総合スコア10760

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

markern

2020/12/01 15:49

完璧に希望通りになりました!!!ありがとうございます!!! seleniumでしか無理なのかなと思っていたのでとてもありがたいです! ありがとうございましたm(^^)m
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問