2019年10月16日水曜日

開発環境

退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング (Al Sweigart(著)、相川 愛三(翻訳)、オライリージャパン)の第Ⅱ部(処理の自動化)、11章(Webスクレイピング)、11.5(Google検索)のコードが動かなかったから、手元の環境で動くように修正してみた。

コード

Python 3

#!/usr/bin/env python3
import sys
import webbrowser
import requests
import bs4

if len(sys.argv) < 2:
    print('usage: ksearch <keyword> [keyword]...', file=sys.stderr)
    sys.exit(1)
url = f'https://google.com/search?q={" ".join(sys.argv[1:])}'
res = requests.get(url)
try:
    res.raise_for_status()
except Exception as err:
    print(err, file=sys.stderr)
    sys.exit(1)
soup = bs4.BeautifulSoup(res.text, 'lxml')
links = soup.select('a')
i = 0
for link in links:
    href = link.get('href')
    if href.startswith('/url?q='):
        webbrowser.open(f'https://google.com{href}')
        i += 1
        if i == 5:
            break

入出力結果(Zsh、cmd.exe(コマンドプロンプト)、Terminal、Jupyter(IPython))

% ./ksearch.py 
usage: ksearch <keyword> [keyword]...
% ./ksearch.py python
% ./ksearch.py go programming
% 

0 コメント:

コメントを投稿