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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

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

Q&A

解決済

1回答

3982閲覧

pythonでのwebスクレイピングが動作しません。

YYJP

総合スコア23

Python 3.x

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

0グッド

0クリップ

投稿2019/08/10 16:42

前提・実現したいこと

プログラミング初心者です。
google scholorから、論文の基本情報を50件分取得し、csvファイルに出力するプログラムを組んでいるのですが、プログラムが動作しません。
サイトは下記を参考にしました。
https://qiita.com/kuto/items/9730037c282da45c1d2b
https://arakan-pgm-ai.hatenablog.com/entry/2018/01/17/080000

エラーメッセージは特に出力されず、項目のみが記載された、中身の要素が空のcsvが生成されてしまいます。
もう4日ほど取り組んでいるのですが解決できず、途方に暮れています。
何卒、よろしくお願い致します。

該当のソースコード

python

1from bs4 import BeautifulSoup 2import requests 3import pandas as pd 4import re 5 6def get_search_results_df(): 7 columns = ["rank", "title", "writer", "year", "citations", "url"] 8 df = pd.DataFrame(columns=columns) #表の作成 9 list_keywd = ['脳', '神経'] 10 html_doc = requests.get('https://scholar.google.co.jp/scholar?num=50&q=' + ' '.join(list_keywd)).text 11 soup = BeautifulSoup(html_doc, "html.parser") # BeautifulSoupの初期化 12 tags1 = soup.find_all("h3", {"class": "gs_rt"}) # title&url 13 tags2 = soup.find_all("div", {"class": "gs_a"}) # writer&year 14 tags3 = soup.find_all(text=re.compile("引用元")) # citation 15 16 rank = 1 17 for tag1, tag2, tag3 in zip(tags1, tags2, tags3): 18 title = tag1.text.replace("[HTML]","") 19 url = tag1.select("a")[0].get("href") 20 writer = tag2.text 21 writer = re.sub(r'\d', '', writer) 22 year = tag2.text 23 year = re.sub(r'\D', '', year) 24 citations = tag3.replace("引用元","") 25 se = pd.Series([rank, title, writer, year, citations, url], columns) 26 df = df.append(se, columns) 27 rank += 1 28 return df 29 30search_results_df = get_search_results_df() 31filename = "Google_Scholar.csv" 32search_results_df.to_csv('/Users/xxxx/OneDrive/filename', encoding="utf-8") 33

試したこと

変数soupや、変数tgas1を出力したところ、適切な値は入っていなかったので、
恐らくhtml_docにgoogle scholorのパスを代入するところから、既にコードが機能していないのだと思います。

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

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

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

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

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

meg_

2019/08/11 00:12

該当サイトはスクレイピング禁止されていませんか?
YYJP

2019/08/11 07:46

参考にしたソースでは、まさに自分がスクレイピングしたいサイトでプログラムを実行できているので、特に禁止等はされていないようです。
meg_

2019/08/11 09:09

技術的には可能でもサイト側では禁止にしていることはあります。 サイトの「robots.txt」を確認してください。
guest

回答1

0

ベストアンサー

'https://scholar.google.co.jp/scholar?num=50&q=' + ' '.join(list_keywd)

これでは正しいURLが生成されません。スペース文字なら%20で表現するようにしないとダメですね。

投稿2019/08/10 16:57

KojiDoi

総合スコア13671

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

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

YYJP

2019/08/11 08:31 編集

サイトから情報を取得できるようになりました。 ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問