🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
スクレイピング

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

Python 3.x

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

Python

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

Q&A

解決済

1回答

1211閲覧

python googleからスクレイピングしても結果が出力されません。なぜでしょうか

syarobura

総合スコア5

スクレイピング

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

Python 3.x

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

Python

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

0グッド

0クリップ

投稿2019/12/22 07:11

質問内容

Python初心者で、参考図書を使って学んでおり、クラス内関数を用いて、スクレイピングを行っています。
下記のソースコードを実行しましたが、結果が出力されませんでした。
別のURLを用いた際には、結果が出力されました(下記の試したこと)。

googleを引数にしてスクレピングできるようにしたいのと、
原因を知りたいです。

ご回答・ご協力のほどよろしくお願いします。

参考図書:独学プログラマー Python言語の基本から仕事のやり方まで  コーリー・アルソフ 清水川貴之

ソースコード

Python3

1import urllib.request 2from bs4 import BeautifulSoup 3 4class Scraper: 5 def __init__(self, site): 6 self.site = site 7 8 def scrape(self): 9 r = urllib.request.urlopen(self.site) 10 html = r.read() 11 parser = "html.parser" 12 sp = BeautifulSoup(html, parser) 13 for tag in sp.find_all("a"): 14 url = tag.get("href") 15 if url is None: 16 continue 17 if "html" in url: 18 print ("\n" + url) 19 20news = "https://news.google.com/" 21Scraper(news).scrape()

試したこと

"https://news.google.com/"を
"https://www.yahoo.co.jp/"に変えて実行

下の結果が出力されました。

https://about.yahoo.co.jp/docs/pr/disclaimer.html

補足情報(FW/ツールのバージョンなど)

windows10
Python3.7

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

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

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

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

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

meg_

2019/12/22 10:42

そのサイトはスクレイピングしても良いサイトでしょうか? 禁止されている場合アクセス拒否されている可能性もあるかと思います。
syarobura

2019/12/24 04:36

スクレイピング等に制限があるんですね。 調べてみたらgoogleのサイトはスクレイピングが禁止されているようでした。 ありがとうございます。
guest

回答1

0

ベストアンサー

print(url) を入れて実行してみましたけど、htmlを含む行がありませんでしたよ。

投稿2019/12/22 07:19

shiracamus

総合スコア5406

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

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

syarobura

2019/12/24 04:39

確認していただきありがとうございます。 詳しいことはよくわかりませんが、googleのサイトがスクレイピングに対して 制限をかけているようでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問