Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
11
Help us understand the problem. What is going on with this article?
@DisneyAladdin

PythonとGoogleCustomSearchAPIでGoogleの検索結果を取得する

リクエスト方法

import urllib
import urllib.request
import json
import sys

url_list = []
title_list = []
snippet_list =[]

API_KEY = "APIのKEYを入れます"
ENGINE_ID="エンジンIDを入れます"
phrase = "検索ワードを入れます"
cnt = 1 # 1:1~10位, 11:11~20位

#リクエストURL
req_url = "https://www.googleapis.com/customsearch/v1?hl=ja&key="+API_KEY+"&cx="+ENGINE_ID+"&alt=json&q="+ phrase +"&start="+ str(cnt)

#念の為User Agentで
headers = {"User-Agent": 'Mozilla /5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobi    le/13B5110e Safari/601.1'}

#リクエスト
req = urllib.request.Request(req_url)
res = urllib.request.urlopen(req)
dump = json.loads(res.read())
hit = dump["queries"]["request"][0]["totalResults"]
#print(hit)


#検索結果のURL, TITLE, SNIPPET をappendしてく
for p in range(len(dump["items"])):
    url_list.append(dump['items'][p]['link'])
    print(dump['items'][p]['link'])
    title_list.append(dump['items'][p]['title'])
    print(dump['items'][p]['title'])
    snippet_list.append(dump['items'][p]['snippet'].replace('\n',''))
    print(dump['items'][p]['snippet'])
    print('---------------------------------')

検索ワードを"Python"で実験

Result
https://www.python.org/
Welcome to Python.org
The official home of the Python Programming Language.
---------------------------------------------
https://ja.wikipedia.org/wiki/Python
Python
Python(パイソン)は、汎用のプログラミング言語である。コードがシンプルで扱いやすく
設計されており、C言語などに比べて、さまざまなプログラムを分かりやすく、少ない
コード行数で書けるといった特徴がある。
---------------------------------------------
https://www.python.org/downloads/
Download Python | Python.org
The official home of the Python Programming Language.
---------------------------------------------
https://en.wikipedia.org/wiki/Python_(programming_language)
Python (programming language) - Wikipedia
Python is an interpreted, high-level, general-purpose programming language. 
Created by Guido van Rossum and first released in 1991, Python has a design 
philosophy that emphasizes code readability, notably using significant 
whitespace.
---------------------------------------------
https://www.codecademy.com/learn/learn-python
Python Tutorial: Learn Python For Free | Codecademy
Learn Python, a powerful language used by sites like YouTube and Dropbox. 
Learn the fundamentals of programming to build web apps and manipulate data. 
Master Python loops to deepen your knowledge.
---------------------------------------------
https://docs.python.org/
3.7.3rc1 Documentation
describes syntax and language elements. Python Setup and Usage how to use 
Python on different platforms. Python HOWTOs in-depth documents on specific 
topics. Installing Python Modules installing from the Python Package Index & 
other ...
---------------------------------------------
https://pypi.org/
PyPI – the Python Package Index · PyPI
The Python Package Index (PyPI) is a repository of software for the Python 
programming language.
---------------------------------------------
https://docs.python.org/3/tutorial/
The Python Tutorial — Python 3.7.3rc1 documentation
The Python interpreter and the extensive standard library are freely available in 
source or binary form for all major platforms from the Python Web site, https://
www.python.org/, and may be freely distributed. The same site also contains ...
---------------------------------------------
https://www.learnpython.org/
Learn Python - Free Interactive Python Tutorial
LearnPython.org is a free interactive Python tutorial for people who want to learn 
Python, fast.
---------------------------------------------
https://hub.docker.com/_/python/
python - Docker Hub
Note: the description for this image is longer than the Hub length limit of 25000, 
so has been trimmed. The full description can be found at https://github.com/
docker-library/docs/tree/master/python/README.md.
---------------------------------------------

こんなかんじで検索結果をとれる

マニュアル操作でも同じことできるけど

大量に検索かけて大量に結果欲しい時は(自動化させる時)

Google Custom Search APIを利用しましょう

拡張

さっきのは一回のリクエスト(テスト)用

今回は

大量の検索ワード

suggest.csv
就活 あるある
就活 あいさつ
就活 あぷり
就活 あなたらしい写真
就活 あほくさ
就活 あがり症
就活 あいさつ こんにちは
就活 あいさつ文
就活 あほらしい
就活 ありのまま
就活 いつから
就活 いつまで
就活 いつ
就活 いつから 2021卒
就活 いつから 2020卒
就活 いつまで続ける
就活 いらすとや
就活 いるもの
就活 いや
就活 いらない
就活 うつ
就活 うまくいかない
就活 うざい
就活 うまくいかなかった
就活 うざい 女
就活 うそ
就活 うまくいった
就活 うつ 2ch
就活 うざい奴
就活 うまくいく人
就活 えり
就活 英語
就活 エントリー数
就活 エントリーとは
就活 エントリーシート
就活 映画
就活 エージェント
就活 es
就活 縁
就活 エピソード
就活 お金
就活 お礼 メール
就活 お団子
就活 お礼状
就活 お祈り
就活 おかしい
就活 お祈りメール
就活 お守り
就活 おすすめ 本
就活 おもしろ
就活 かばん
就活 かしこまりました
就活 かけ直し
就活 かつら
就活 かきあげ前髪
就活 かける言葉
就活 かっこいい髪型
就活 変わる
就活 かんざし
就活 髪型
就活 きつい
就活 きっかけ
就活 きつい 2019
就活 きつい 2018
就活 きつい 2ch
就活 きつい 理系
就活 きれいめ 私服
就活 きりがない
就活 くだらない
就活 靴
就活 くせ毛 女
就活 くせ毛 男
就活 クールビズ
就活 くだらない 2ch
就活 靴下
就活 くせ毛
就活 くじけそう
就活 くたばれ
就活 掲示板
就活 健康診断書
就活 化粧
就活 健康診断書 間に合わない
就活 研究概要
就活 研究内容
就活 健康診断 落ちる
就活 健康診断書 どこで
就活 結果待ち
就活 健康診断 項目
就活 これから
就活 こだわり
就活 こんにちは
就活 ことわざ
就活 こげ茶
就活 コツ
就活 ここまでどうやって
就活 ここまでどうやって来ましたか
就活 こだわりがない
就活 こちらこそ
就活 さぼり
就活 さん 様
就活 さっさと終わらせる
就活 さぼる
就活 作文
就活 最終面接
就活 最終面接 落ちる
就活 サイレント
就活 最終面接 質問
就活 最終面接 逆質問
就活 したくない
就活 しんどい
就活 しない
就活 しなかった
就活 しにたい
就活 したことない
就活 しなくていい
就活 しかた
就活 していない
就活 しっくりこない
就活 すること
就活 する意味
就活 すぐ終わらせる
就活 すごい経験
就活 すごい やつ
就活 すべり止め
就活 すぐ決まった
就活 するべきこと
就活 すみません
就活 すぐ決まる人
就活 せずに卒業
就活 選考辞退
就活 説明会
就活 成績証明書
就活 説明会 質問
就活 性格診断
就活 性格
就活 成績
就活 選考辞退 電話
就活 説明会 マナー
就活 その場で内定
就活 そうですね
就活 そもそも働きたくない
就活 そろばん
就活 そちら
就活 その他自由記入欄
就活 その場で通過
就活 送付状
就活 速報
就活 相談
就活 たばこ
就活 たんしょ
就活 ためになる
就活 たいしたことない
就活 たくさん 受ける
就活 楽しい
就活 玉手箱
就活 短所 心配性
就活 タイピン
就活 大変
就活 ちゃんねる
就活 ちふれ 口紅
就活 ちょろい
就活 ちゃんとやらなかった
就活 長所
就活 長所 短所 例
就活 茶髪
就活 茶番
就活 チーク
就活 中小企業
就活 つらい
就活 つらすぎ
就活 つらい 2019
就活 つまらない
就活 つけま
就活 つらい 2018
就活 つらい なんj
就活 つきましては
就活 つらかった
就活 つらい みんしゅう
就活 テスト
就活 てきとう
就活 てきとー
就活 適性検査
就活 手帳
就活 適性検査とは
就活 テストセンター
就活 適当 受かった
就活 手順
就活 提出書類 遅れ 添え状
就活 とりあえず応募
就活 とりあえず内定
就活 とうぴ
就活 とっておくべき資格
就活 とんでもない奴
就活 時計
就活 特技
就活 時計 女性
就活 toeic
就活 時計 男性
就活 なんj
就活 なんとかなる
就活 なめてる
就活 何する
就活 なくなる
就活 なんでもいい
就活 なめてた
就活 なぜ
就活 なんとなく
就活 何をすれば 2020
就活 にちゃん
就活 に 強い 人
就活 にちゃん 2019
就活 にきび
就活 にちゃんねる ランキング
就活 ニュース
就活 人気企業
就活 日程 メール
就活 二次募集
就活 日程
就活 抜け道
就活 ヌルゲー
就活 脱いだコート
就活 抜き打ちテスト
就活 抜き打ち面接
就活 脱いだ上着
就活 抜け毛
就活 沼津
就活 前髪
就活 ぬいぐるみ
就活 ねくたい
就活 ネクタイピン
就活 ネイル
就活 ネクタイ 結び方
就活 ネクタイ ブランド
就活 ネクタイ 無地
就活 年収
就活 ネクタイ ドット
就活 ネタ
就活 ネタ作り
就活 の ため に 整形
就活 ノート
就活 ノーネクタイ
就活 ノック 回数
就活 ノーネクタイでお越しください
就活 能力検査
就活 ノイローゼ
就活 ノートパソコン
就活 能力
就活 飲み会
就活 はてなブログ
就活 はじめ方 2020
就活 はがき 書き方
就活 働きがいのある会社 採用株式会社 cs-c
就活 はんこ
就活 はてな
就活 はじめる
就活 初めて
就活 はじめ方 2018
就活 はじめの一歩
就活 ひげ
就活 ひどい
就活 ひーる
就活 ひろゆき
就活 ひま
就活 ひとりで
就活 ひとつ結び
就活 ひげ 剃り忘れ
就活 ひとつボタン
就活 ひとり旅
就活 ふざける
就活 封筒
就活 ふざけてる
就活 不安
就活 服装
就活 服装自由
就活 封筒 横書き
就活 封筒 色
就活 フリーター
就活 封筒 ペン
就活 偏差値
就活 返信
就活 ヘアスタイル
就活 返信用封筒
就活 ヘアカラー
就活 平均 何社
就活 平均 何社 落ちる
就活 ヘアスタイル メンズ
就活 ヘアスタイル 女
就活 偏差値 理系
就活 ほかに受けている企業
就活 ほっといてほしい
就活 本
就活 本 ランキング
就活 方法
就活 ホテル
就活 補欠合格
就活 ホワイト企業
就活 ホテル業界
就活 報告 メール
就活 まとめ
就活 まだ間に合う
就活 まとめサイト
就活 まず何から
就活 まなー
就活 まずやること
就活 まつげパーマ
就活 まつげ
就活 また連絡します
就活 まゆげ
就活 みんなの
就活 みんしゅう つらい
就活 みんな同じ
就活 みんな同じ格好
就活 みんなすごい
就活 みなし残業
就活 みんな同じ髪型
就活 みずほ銀行
就活 身だしなみ
就活 見た目
就活 むかつく
就活 むずすぎ
就活 むかつく人事
就活 むかつく 友達
就活 むずい
就活 無理ゲー
就活 無気力
就活 向いていない
就活 無理 死ぬ
就活 無能
就活 めんどくさい
就活 メール
就活 めんせつ
就活 めんどくさすぎ
就活 めんどくさい 2ch
就活 めんどくさくなった
就活 めんどくさい やら ない
就活 めんどくさ すぎる
就活 メール 返信
就活 面接 質問
就活 もしもし
就活 もうだめだ
就活 もうしたくない
就活 もういや
就活 もういいや
就活 もうやだ
就活 もう一度
就活 もうだめ
就活 もとい
就活 持ち物
就活 やり方
就活 やめたい
就活 やめた
就活 やりたくない
就活 やる気でない
就活 やること
就活 やり直し
就活 やばい
就活 やっておくこと
就活 やり方 2019
就活 ゆっくり
就活 ゆとり
就活 ゆるいパーマ 男
就活 ゆるく
就活 郵送
就活 郵送 書き方
就活 有利 資格
就活 夢
就活 有利
就活 夢占い
就活 よく聞かれる質問
就活 よくわからない
就活 よろしくお伝えください
就活 よろしいでしょうか
就活 よさこい
就活 よろしくお願いします
就活 よくわからなくなってきた
就活 弱み
就活 弱み 例
就活 四字熟語
就活 ランキング
就活 楽天
就活 楽勝
就活 楽
就活 ライン交換 人事
就活 ランキング 2019
就活 ライン交換
就活 ランキング 2018
就活 楽に終わらせる
就活 ライブ 行けない
就活 ルール
就活 留守電
就活 留守電 折り返し
就活 留守電 また連絡します
就活 留守電なし
就活 留守電 設定
就活 ルックス
就活 留守電 折り返し 不要
就活 留守電 かけ直す
就活 留守電 残す
就活 ローファー
就活 浪人
就活 論文
就活 六月から
就活 ロングヘア
就活 論文 書き方
就活 rom
就活 六月
就活 浪人 理由
就活 ログイン回数
就活 わからない
就活 わかりました
就活 わたくし
就活 わざと落ちる
就活 わからん
就活 わたくし わたし
就活 わがまま
就活 ワロタ
就活 詫び状
就活 わからない質問
就活 を しない 選択
就活 ヲタク
就活 word excel
就活 ヲタ活
就活 ヲチ
就活 wowow
就活 ヲタ芸
就活 を通して 学ん だ こと
就活 を英語で
就活 履歴書  word
就活 nnt
就活 ngワード
就活 nhk
就活 ng 髪型
就活 ng
就活 ng 知らない 準備 服装
就活 nntとは
就活 nnt 意味
就活 ntt
就活 nnt 2ch
就活 がんばれない
就活 がるちゃん
就活 ガクチカ
就活 がんばる
就活 頑張ったこと
就活 がんばれ
就活 学歴
就活 学歴 書き方
就活 学校推薦 合格率
就活 学校推薦
就活 逆質問
就活 業界
就活 業界研究
就活 逆質問 例
就活 逆質問 新卒
就活 業界 絞り方
就活 銀行
就活 業界 絞る
就活 逆質問集
就活 業界 おすすめ
就活 グループディスカッション
就活 グループワーク
就活 グループ面接
就活 グループワーク 例
就活 グループディスカッション テーマ
就活 グレースーツ
就活 グッズ
就活 グループ会社 併願
就活 グループ面接 マナー
就活 グッズ プレゼント
就活 現状
就活 ゲーム
就活 ゲーム業界
就活 現実逃避
就活 現実
就活 限界
就活 元気が出る曲
就活 ゲーム感覚
就活 元気
就活 下痢
就活 ご縁がありましたら
就活 ごちゃん
就活 ご飯
就活 ご縁
就活 ご飯 食べれ ない
就活 ご検討
就活 ご連絡ありがとうございます
就活 ご自愛ください
就活 ご利益
就活 ご返信
就活 ざまぁ
就活 ざまあ
就活 座談会 質問
就活 挫折経験
就活 座談会
就活 座右の銘
就活 雑誌
就活 挫折経験 恋愛
就活 挫折経験 ない
就活 座談会 選考
就活 自己pr
就活 じく
就活 じゅんび
就活 じんましん
就活 自己紹介
就活 自己分析
就活 軸
就活 時期
就活 時事問題
就活 準備
就活 ずる賢い
就活 ズボン
就活 頭痛
就活 随時募集
就活 ズボン 裾
就活 随時募集 電話
就活 頭痛 吐き気
就活 ズボン ベルト
就活 図表の読み取り
就活 ずるい
就活 ぜひ私服でお越しください
就活 全落ち
就活 全滅
就活 ゼミ
就活 ゼミ 書き方
就活 全落ち どうする
就活 絶望
就活 ゼミ名
就活 全滅したら
就活 ゼミ 入ってない
就活 存じます
就活 ゾンビ
就活 造船
就活 用語
就活 続行
就活 属している組織でのあなたの役割
就活 属性
就活 造園
就活 俗語
就活 存じ上げない
就活 だるい
就活 だめ
就活 だるすぎ
就活 だめだったら
就活 だるすぎる
就活 だらだら
就活 だいたいいつまで
就活 だるい 2ch
就活 だめかも
就活 ださい
就活 disco
就活 dict
就活 趣味 diy
就活 digmee 
就活 dic 
就活 dig 
就活 dip 
就活 discover 
就活 diana 
就活 dior リップ 
就活 図形貼り付け
就活 図形問題
就活 図形配置問題
就活 図形貼り付け形式
就活 図形を貼る
就活 図形 tal
就活 図形 問題集
就活 webテスト 図形
就活 図形 展開図 
就活 doda 
就活 できない
就活 できなかった
就活 でぶ
就活 できること
就活 できない うつ
就活 できない 怖い
就活 できる気がしない
就活 できない人
就活 できない 病気
就活 できること ない
就活 どうしよう
就活 どうやって来ましたか
就活 どうやる
就活 どうにかなる
就活 どうせ落ちる
就活 どんな人になりたいか
就活 どうなる
就活 どうやって
就活 どのくらい忙しい
就活 どんな人
就活 ばからしい
就活 ばっく
就活 ばかばかしい
就活 ばっくれ
就活 ばいと
就活 ばっくれ 2ch
就活 バッグ
就活 倍率
就活 バッグ レディース
就活 バッグ メンズ
就活 ビジネスバッグ
就活 ビジネスカジュアル
就活 美容院
就活 ビニール傘
就活 美人 落ちる
就活 美人 有利
就活 ビジョン
就活 病気
就活 ビックサイト
就活 病院見学 質問
就活 ぶっちゃけ
就活 ぶさいく
就活 ぶっち
就活 ブラウス
就活 ブログ
就活 ブラウス ユニクロ
就活 部活
就活 ブス
就活 ブラウス ボタン
就活 ブラックリスト
就活 ベルト
就活 勉強
就活 ベリーショート 女
就活 ベリーショート
就活 ベルト 忘れた
就活 便利グッズ
就活 ベンチャー
就活 ベルト バックル
就活 ベスト
就活 ベルト 色
就活 ぼっち
就活 ぼぶ
就活 ぼっち 2ch
就活 坊主
就活 ボールペン
就活 ボランティア
就活 ボタン
就活 ボタンダウン
就活 ボランティア 有利
就活 ボランティア 嘘
就活 ぱっつん
就活 ぱっつん 流す
就活 ぱっつん 流し方
就活 パーマ
就活 パンプス
就活 パンツスーツ
就活 パンプス ストラップ
就活 パーマ 男
就活 パーマ 女
就活 パンプス 痛くない
就活 ピアス
就活 ピン
就活 ピアス 軟骨
就活 ピアス 透明
就活 ピーク
就活 ピアス 女
就活 ピアスホール 隠し方
就活 ピンヒール
就活 ピン 見える
就活 ピーコート
就活 プレゼント
就活 プレゼン
就活 プレエントリー
就活 プレゼント 彼氏
就活 プレゼント 彼女
就活 プレエントリー 数
就活 プログラミング
就活 プレエントリー 締切
就活 プレゼン 資料
就活 プレッシャー
就活 ぺたんこ靴
就活 ペン
就活 ペンケース
就活 ペーパーテスト
就活 ペンケース 女
就活 ペディキュア
就活 ペース
就活 ペンケース 男
就活 ペン 太さ
就活 ペーパーテスト 対策
就活 キャッチコピー
就活 キャッチフレーズ
就活 キャリアプラン
就活 キャンセル メール
就活 キャリーバッグ
就活 キャンセル 電話
就活 キャリアプラン 書き方
就活 キャリアセンター 行かない
就活 キャリアセンター
就活 キャリタス
就活 給料
就活 休学
就活 求人 問い合わせ 電話
就活 休暇中の連絡先
就活 休憩
就活 求人
就活 休日の過ごし方
就活 給料 見方
就活 休日の過ごし方 例
就活 休日
就活 曲
就活 教育実習
就活 協調性
就活 矯正
就活 興味ない
就活 興味のあること
就活 教授推薦
就活 教育実習 重なる
就活 教員免許
就活 興味ない企業 選考
就活 しゃつ
就活 しゃべれない
就活 写真 おすすめ
就活 写真 髪型
就活 写真 サイズ
就活 写真 メイク
就活 シャツ ボタン
就活 シャツ 色
就活 写真 表情
就活 写真 大阪
就活 しゅみ
就活 趣味
就活 趣味 特技
就活 集団面接
就活 集団面接 マナー
就活 シュシュ
就活 趣味 旅行
就活 趣味 ゲーム
就活 集合時間 何分前
就活 趣味 書き方
就活 しょうもない
就活 しょーと
就活 証明写真
就活 小論文
就活 書類 郵送
就活 証明写真 メイク
就活 証明写真 髪型
就活 ショートヘア 不利
就活 証明写真 おすすめ
就活 書類 封筒
就活 茶封筒
就活 チャレンジしたこと
就活 茶髪 内定
就活 チャレンジしたいこと
就活 チャレンジ精神
就活 茶番 まとめ
就活 中小企業 探し方
就活 中小企業 おすすめ
就活 中小企業 落ちる
就活 中途採用
就活 中国語
就活 中学時代
就活 中退
就活 抽選 嘘
就活 中小企業選び方
就活 長所 書き方
就活 挑戦したこと
就活 挑戦したいこと
就活 貯金
就活 直感
就活 長所 協調性
就活 長所 一覧
就活 入室
就活 ニュース ネタ
就活 ニュース 面接
就活 ニュース 時事
就活 ニュース アプリ
就活 ニュース ネタ 2018
就活 入社承諾書
就活 入社してしたいこと
就活 入社 決め手
就活 尿検査
就活 尿蛋白
就活 健康診断書  尿検査
就活 尿検査 生理 
就活 尿検査 再検査 
就活 尿検査 蛋白 
就活 饒田 
就活 百貨店
就活 百貨店 志望動機
就活 百均の履歴書
就活 百科
就活 百貨店 見学
就活 百社
就活 百貨店 質問
就活 百均
就活 百万円あったら
就活 百貨店 2ch
就活 ヒューマントラスト
就活 ヒューマンスキル
就活 ヒューゴボス
就活 ヒューリック 
就活 ヒューマンアカデミー 
就活 ヒューレットパッカード 
就活 ヒューマンアカデミー 広島 
就活 ヒューマネージ 
就活 ヒューマンリソシア 
就活 ヒューマン 
就活 氷河期
就活 評判
就活 表情
就活 評価
就活 評判サイト
就活 評価基準
就活 表彰歴
就活 評判 悪い
就活 兵庫
就活 評価されない
就活 脈あり
就活 脈なし
就活 面接 脈あり
就活 面接 脈なし
就活 面接 質問 脈あり
就活 面接 脈
就活 最終面接 脈あり
就活 ミャンマー 
就活 脈アリ 
就活 ミュージカル
就活 ミュールバンド
就活 ミュール
就活 ミュージシャン
就活 ミュージックビデオ
就活 ミュゼ
就活 趣味 ミュージカル鑑賞
就活 趣味 ミュージカル
就活 ミュゼプラチナム 
就活 ミュゼ 採用 
就活 苗字
就活 苗字変更
就活 名字
就活 苗字 名前
就活 茗荷谷
就活 封筒 宛名 苗字だけ
就活 封筒 書き方 苗字だけ
就活 メール 苗字
就活 電話 苗字
就活 明星食品 
就活 略語
就活 略歴
就活 略称
就活 略歴 書き方
就活 略すな
就活 略
就活 略礼服
就活 略語 コンビニ
就活 略称 英語
就活 一般常識 略語
就活 リュック
就活 留年
就活 留学
就活 留年 理由
就活 リュック 説明会
就活 リュック 遠方
就活 留学経験
就活 留年 聞かれない
就活 留学生
就活 リュック 面接
就活 領収書 宛名
就活 了解メール
就活 領収書 渡し方
就活 旅行
就活 旅行業界
就活 了解しました
就活 領収書 宛名 自分で書く
就活 寮生活 自己pr
就活 旅行 趣味
就活 領収書 片道
就活 逆質問 最終面接
就活 逆転
就活 逆求人
就活 逆転ホームラン
就活 逆オファー
就活 逆面接
就活 牛革
就活 牛乳石鹸 
就活 ぎゅーとら 
就活 業界 人気
就活 業界 絞らない
就活 業界 決まらない
就活 業界 決め方
就活 業界 絞れない
就活 ジャケット ボタン
就活 ジャケット
就活 ジャケット 忘れた
就活 弱点
就活 若干名
就活 ジャニヲタ
就活 ジャケット ボタン 女性
就活 ジャケット不要
就活 java
就活 ジャケット 持ち方
就活 授業
就活 潤滑油
就活 塾
就活 授業 欠席
就活 準備するもの
就活 重視すること
就活 住所 書き方
就活 準備 いつから
就活 女子 髪型
就活 女子 前髪
就活 女子
就活 常識問題
就活 情報
就活 女性 髪型
就活 情報収集
就活 女性 時計
就活 情報解禁
就活 女子 厳しい
就活 ビューラー
就活 ビューティフルツアー
就活 ビューカード 
就活 ビューティーアドバイザー 
就活 ビューティ花壇 
就活 ビューテック 
就活 びゅうトラベルサービス 
就活 病院 呼び方
就活 病院
就活 病院見学
就活 病気 隠す
就活 病院 電話
就活 病院見学 お礼状
就活 病気 不利
就活 病歴
就活 ピュアフード 

を入力に一気に大規模データを取得する

尚,suggest.csvの作成方法は以前紹介したここを参考に

Google Custom Search APIは1日あたり100リクエストまでと決まっている

なのでAPI_KEYENGINE_IDをいくつか用意して対応

またcntを動的に変化させて各検索結果1~10, 11~20位をゲッチュ!

コード

google_api.py
#encoding:utf-8
import urllib
import urllib.request
import json
import sys
import pandas as pd
from time import sleep
import csv

def scrape_serps(key,maxrank,df_api,api_counter,j,try_cnt):
    phrase = urllib.parse.quote(key)
    try:
        url_list = []
        title_list = []
        snippet_list = []
        a = list(df_api["log"])
        cnt=1# 1位から10位を意味する
        while(cnt<maxrank*10):
            if api_counter < 99:
                print("[page_num]-->"+str(cnt))
                API_KEY = df_api["API_KEY"][j]
                ENGINE_ID = df_api["API_ID"][j]
                print (CYAN+"[api_cnt]-->"+GREEN+str(api_counter)+ENDC)
                print ("[API_KEY]-->"+str(API_KEY))
                print ("[API_NUM]-->"+str(j))
                print ("[SUGGEST]-->"+key)

                req_url = "https://www.googleapis.com/customsearch/v1?hl=ja&key="+API_KEY+"&cx="+ENGINE_ID+"&alt=json&q="+ phrase +"&start="+ str(cnt)
                print("[req_url]-->"+str(req_url))
                headers = {"User-Agent": 'Mozilla /5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B5110e Safari/601.1'}

                req = urllib.request.Request(req_url)
                res = urllib.request.urlopen(req)
                dump = json.loads(res.read())

                hit = dump["queries"]["request"][0]["totalResults"]
                print(hit)
                for p in range(len(dump["items"])):
                    url_list.append(dump['items'][p]['link'])
                    title_list.append(dump['items'][p]['title'])
                    snippet_list.append(dump['items'][p]['snippet'].replace('\n',''))
                print(GREEN+'[len_list]-->'+str(len(dump["items"]))+ENDC)

                if int(hit) < 11:
                    cnt = 100
                api_counter = api_counter + 1
                cnt = cnt +10
            else:
                j = j + 1
                api_counter = 0
            print('_____________________________')

        with open('data.csv', 'a') as f:
            writer = csv.writer(f, lineterminator='\n') # 行末は改行
            for i,u in enumerate(url_list):
                data = [key,url_list[i],title_list[i],snippet_list[i]]
                writer.writerow(data)

        if len(dump["items"]) >= 1:
            return url_list,title_list,snippet_list,df_api,api_counter,j
        else:
            return ['no'],['no'],['no'],df_api,api_counter,j

    # if 503 or 403error returned (when the http server do not temporary accept your request)
    except Exception as e:
        try_cnt += 1
        sleep(1)
        if try_cnt <= 3:
            scrape_serps(phrase,maxrank,df_api,api_counter,j,try_cnt)
            #scrape_serps(key_,page,df_api,api_counter,j)
        else:
            print ('server error occured')
            print(title_list)
            print(df_api)
            print(api_counter)
            print(j)




def main():
    api_counter = 0
    j = 0
    page = input("how many page do you want?(1or2)")
    page = int(page)
    df = pd.read_csv("suggest.csv",header=None)
    df.columns=["suggest"]
    sg = list(df["suggest"])

    urls = []
    titles = []
    snippets = []

    urls_ = []
    titles_ = []
    snippets_ = []

    sgs = []
    df_api = pd.read_csv("api.csv")
    ct = 0

    for key in sg:
        ct = ct + 1
        try_cnt = 0
        print ("")
        print (GREEN+str(ct)+ENDC)
        print("====================================")
        print(key)
        try: 
            url_list,title_list,snippet_list,df_api,api_counter,j = scrape_serps(key,page,df_api,api_counter,j,try_cnt)
            urls_.extend(url_list)
            titles_.extend(title_list)
            snippets_.extend(snippet_list)
            if url_list[0]!='NULL':
                for i in range(len(url_list)):#Deffault: page*10
                    sgs.append(key)
                urls += [url_list]
        except:
            print('exceptional error occured and skipped')

    urls = pd.DataFrame(urls)
    titles = pd.DataFrame(titles)
    snippets = pd.DataFrame(snippets)
    df = pd.concat([df,urls],axis=1)
    df.to_csv("urls.csv")
    df_ = pd.concat([pd.Series(urls_),pd.Series(sgs)],axis=1)
    # web_id は自動で付与される
    df_.columns = ["url","suggest"]


    de = pd.concat([pd.Series(urls_), pd.Series(titles_), pd.Series(snippets_)],axis=1)
    de.columns = ["url","title","snippets"]

main()

以下のような形式でAPI_KEYENGINE_IDのリストを用意

api.csv
NUM,API_KEY,API_ID,log
1,ここにKEY1,ここにENGINE_ID1,0
2,ここにKEY2,ここにENGINE_ID2,0
3,ここにKEY3,ここにENGINE_ID3,0
...
...

左の0は意味のない数字です

あとは

python3 google_api.py

で実行

Web IDは自動で付与されるようにした

結果はdata.csvに保存される

以下を実行すると

import pandas as pd
df = pd.read_csv("data.csv",header = None)
df.columns=["suggest","url","title","snippet"]

df1 = pd.DataFrame(df["url"])
df1["suggest"] = df["suggest"]
df1.to_csv("sg_urls.csv")

df2 = pd.DataFrame(df["url"])
df2["title"] = df["title"]
df2["snippet"] = df["snippet"]
df2.to_csv("url-title-snippet.csv")

データ整形して

sg_urls.csvurl-title-snippet.csv

の2つのファイルを出力する

url-title-snippet.csv(例WebID16953-16964を表示)
16953,http://www.gloriousblogger.net/entry/2014/11/01/001301,就活生の会社説明会の当日の無断欠席は実はメリット大きい - 就職 ...,2014年11月1日 ... そろそろ2016年卒業予定の就職活動が始まる頃かもしれません。多くの方はリクナビやマイナビに登録して、そこからエントリーしてまずは会社説明会に出席して、そこからスタートしていく方が多いのではないか?と思うのです。ただ、この会社 ...
16954,https://kobito-kabu.com/mensetsu-dotakyan-suppokashi/,【就活生向け】面接ドタキャン・すっぽかし…経験者は語る。 - こびと株.com,2018年3月19日 ... 就活に疲れてこんな風に思っている就活生、実は少なくないのではないでしょうか? 最近は就活の売り手市場に乗じて「ブラック就活生」などと呼ばれるマナー違反者たちも増えているようです。 結論から言います。ドタキャン・すっぽかしなんて ...
16955,https://oshiete.goo.ne.jp/qa/4724536.html,就活で面接をバックレてしまうと、ブラックリストに載るのか -こんにち ...,ブラックリストに載ることは無いです。 関連会社同士でも個人情報の問題があるので情報共有はできません。しかし、持病とはいえバックレるのは良くないことですので、今後このようなことがないように、バックレた企業には正直にお詫びする、そんな姿勢は社会人 ...
16956,http://www.nsp-ltd.co.jp/nsp162j.html,就活特集ページ,注意このページは我々が就活で感じたことを勝手気ままに書いておりますので、正確性についての保証と責任は持ちかねます。 ... ぶっちー: 私の課題は「人生で一番失敗したこと」でした。 失敗した経験だけでなく、失敗を通して自分がどう感じどう行動するように ...
16957,https://www.nikki.ne.jp/bbs/200302031612245443/,会社説明会を欠席してしまったのクチコミ・掲示板 - みん就(みんなの就職 ...,2019年2月15日(金) みん就フォーラム in 仙台 地元企業も多数出展 · 特集 · 就活日記トップ · 面接/試験/資格; 会社説明会を欠席してしまった ... 4/27の社員交流会ブッチしてたこと今日気付いた。 5月13日 16:14. kwaaaさん (2019年卒). >もーさんまったく ...
16958,https://blogos.com/article/100217/,売り手市場で「ブラック就活生」が増加? 説明会を無断欠席、選考中も ...,2014年12月1日 ... 就職活動が売り手市場になる中、企業が「ブラック就活生」に悩まされているという。11月27日に放送された「スーパーニュース」(フジテレビ系)では、説明会を無断で欠席したり、選考を連絡なしに辞退したりする就活生の存在を、約5分間の ...
16959,https://www.nikkei.com/article/DGXMZO83940430U5A300C1000000/,人事が説明会で見た「採りたくない学生」 :日本経済新聞,2015年3月5日 ... 3月1日に就活が本格解禁となり、多くの就活生は企業の説明会に足を運んでいるころだろう。後ろ倒しで選考期間が短くなった今シーズンの就活は説明会.
16960,http://news.livedoor.com/article/detail/8403354/,面倒で、寝坊で、体力の限界で......。面接を無断でブッチしたことある?,2014年1月5日 ... 電話のかけ方が分からなくて、面倒になって、道に迷って......。さまざまな理由で、面接や説明会を無断でキャンセルする就活生がいるそうです。内定した学生282人にアンケートしたところ「就活中、企業に連絡をしないで説明会や面接に行か ...
16961,https://girlschannel.net/topics/81423/,面接を無断でブッチしたことある? | ガールズちゃんねる - Girls Channel -,2014年1月18日 ... 内定した学生282人にアンケートしたところ「就活中、企業に連絡をしないで説明会や面接に行かなかった」経験がある学生は27.7%に ..... 面接する側の「よくある」って書き込みは多いのに、「ぶっちしたことあります」の申告コメントは少ないwww
16962,https://careerpark.jp/377,説明会を無断欠席してしまったらすべき行動|謝罪メールや電話連絡の ...,2018年10月11日 ... 説明会をうっかり忘れて、無断欠席なんてありませんか。「とりあえず参考までに参加するだけだった」から、「第一志望ではない」からなどの理由で謝罪はしなくても良いのではと思う就活生もいるでしょう。そんな就活生へ、キャリアパークでは、 ...
16963,https://xn--08j8j5bvdte041tvoez19by7gfz7f.com/interview/invitation-morning,就活:面接当日の朝に辞退したい時の対処法,うぁ〜寝坊した!!!!今から行っても間に合わないじゃん…」 「なんか今日は全然やる気がでないなぁ…」 「ぶっちゃけ、本命の企業じゃないし…」 などと、面接の当日の朝になって「面接を辞退したくなった」なんてこともあるかと思います。 それは人間なので ...
16964,http://ure.pia.co.jp/articles/-/13262,【就活】人事もア然! 実録・トンデモ就活生(1/3) - ウレぴあ総研,2013年4月3日 ... 現役人事の筆者が、これまでの採用活動の中で遭遇した「トンデモ就活生」について語ります。

カンマ区切りのCSVで左から

webID URL title snippet

となっている

まとめ

・Google Custom Search API のリクエスト方法を紹介

・大量の検索ワードの検索結果を複数のAPI_KEY使って取得・データ整形

おわり

Github

お試し用

11
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
DisneyAladdin
Pythonが大好物です.

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
11
Help us understand the problem. What is going on with this article?