1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

PythonでGoogleしごと検索の検索結果を取得する〜スクリーンショットも添えて〜

Posted at

今年に入ってから、社内/個人案件でSeleniumを使って色々とスクレイピングしまくって( # ´Д`)ハァハァしてたのですが、その流れでGoogleしごと検索をスクレイピングしてみることにしました。

今まではfacebook/php-webdriverでやっていたのですが、今回はPythonでやることに。

環境

macOS python pip
High Sierra 10.13.6 3.6.4 19.0.1

おソース

jobs.py

import sys
import time
import datetime
from selenium import webdriver
from selenium.webdriver.firefox.options import Options
from selenium.common.exceptions import NoSuchElementException

# コマンドライン引数を受け取る
words = sys.argv
# 第二引数をwordに格納
word = words[1]

print('"' + word + '"' + 'で検索...')
print('----------------------------------------------')

# setting user agent
ua = [
    'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.80 Safari/537.36',
    'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0',
]
    now = datetime.datetime.now().strftime('%Y%m%d_%H%M%S')

# init Options
options = Options()
options.add_argument('-headless')
options.add_argument('-user-agent=' + ua[0])

geckodriver = 'geckodriver'

# set Options / chromedriver
driver = webdriver.Firefox(firefox_options=options)
# set window size
driver.set_window_size(450, 3320)
# set default wait
driver.implicitly_wait(6)

# go to URL
driver.get('https://www.google.com/search?ie=UTF-8&ibp=htl;jobs&htivrt=jobs&q=' + word)
# wait for rendering
time.sleep(5)

elements = driver.find_elements_by_css_selector('.tab-sel ul > li')
# print(elements)

if elements:
    for i, li in enumerate(elements):
        h1 = li.find_element_by_css_selector('.gsrt').text
        print(str(i+1) + '' + h1)
        for item in li.find_elements_by_css_selector('.gsrt + div > div'):
            print('- ' + item.text.replace('\n', ''))
        print('----------------------------------------------')
    driver.save_screenshot('sr_' + now +'.png')
else:
    print('要素がありませんでした...')

driver.quit()

検索方法

  1. python/pipの実行環境を構築(適当にググってください
  2. pip install selenium でseleniumをインストール
  3. OS/環境に合わせてgeckodriverをDL、解凍後、カレントディレクトリに配置
  4. カレントディレクトリで python jobs.py "キーワード" を実行

検索結果(例

❯ python jobs.py "渋谷 求人 エンジニア"
"渋谷 求人 エンジニア"で検索...
----------------------------------------------
1位 【渋谷】【時短相談可】サイバーセキュリティエンジニア
- パーソルテクノロジースタッフ株式会社
- 東京都渋谷区
- 提供元: リクナビ派遣
- 1 日前、1 時間 ¥4000
----------------------------------------------
2位 【渋谷!3100円~】ネットサービス会社でのNWエンジニア
- パーソル パナソニック HRパートナーズ株式会社 テクニカル事業本部
- 東京都渋谷区
- 提供元: リクナビ派遣
- 1 日前、1 時間 ¥3100~¥3300
----------------------------------------------
3位 【6月スタート】渋谷駅チカ♪交支給☆セールスエンジニア
- ヒューマンリソシア株式会社
- 東京都渋谷区
- 提供元: リクナビ派遣
- 6 時間前、1 時間 ¥3100
----------------------------------------------
〜〜 略 〜〜〜
----------------------------------------------
20位 システムエンジニア(SE),サーバーサイドエンジニア
- 社名非公開
- 東京都渋谷区
- 提供元: フューチャリズム
- 1 か月以上前、月 ¥70万~¥80万
----------------------------------------------

取れた!!

一応整合性取れてるかを確認したかったので、スクショも取るようにしてみました。

まとめ

Seleniumすごいよ( # ´Д`)ハァハァ

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?