# Google検索結果から必要な要素を__Python__で__Web__スクレイピング
ステータス
訳があって友人からこのサイトを紹介されて取り組むことになりました。
自分は__Python__はある程度知っていますが、__HTML__とブラウザ関係のことは触れたことがありません。
問題
サイトに乗っているプログラムの一部、検索結果タイトルとリンクの取得、検索結果の説明部分を取得の出力がどちらも空白の配列が帰ってきてしまいます。
Python
1list_keywd = ['機械学習','統計'] 2resp = web.get('https://www.google.co.jp/search?num=100&q=' + ' '.join(list_keywd)) 3resp.raise_for_status() 4 5# 取得したHTMLをパースする 6soup = bs4.BeautifulSoup(resp.text, "html.parser") 7# 検索結果のタイトルとリンクを取得 8link_elem01 = soup.select('.r > a') 9# 検索結果の説明部分を取得 10link_elem02 = soup.select('.s > .st')
取り組み
select
内の.r
がclass
を指定して、a
がタグを示すことはわかりました。
でも、調べてみると別の書き方があるそうで、そちらでプログラムを書き直しました。
Python
1b_soup = bs4.BeautifulSoup(resp.text,"html.parser") 2 3link_title = b_soup.find_all("div",class_="main") 4print(link_title)
しかし、これでは自分が欲しいタイトルとリンク、説明文をうまく取り出すことができませんでした。
悩んだ自分は、URLに問題があると思いシンプルなサイトのURLを使って試してみました。
すると、自分の望んだ通りの結果が得られました。
なので問題はGoogleのURL(検証のHTML)にあると思います。
質問
このサイトのプログラムを使って検索結果からタイトルやURL、説明を取得したいのですがどうすればいいでしょうか?
GoogleのURL(検証)内の<div id="main">
の中にある各記事にアクセスしてタイトルなどを取得するためにはどうしたらいいですか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/21 20:46