スクレイピング・ハッキング・ラボ サポートページ

このページについて

このページは、インプレスR&D『スクレイピング・ハッキング・ラボ』のサポートページです。『スクレイピング・ハッキング・ラボ』の疑問点や難しい点、正誤表、新しいHTMLへの対応などを記載していきます。

『スクレイピング・ハッキング・ラボ』についてわからない点がありましたら、Twitterなどで #スクレイピング・ハッキング・ラボ で投稿して頂けたら、対処法を調査していきます。是非ご活用ください。

第4章 文字列結合の誤記

「第4章 Python基礎」の「文字列を結合する」(紙版45ページ)で、出力結果を以下のように記述している箇所があります。

# Hellow World

正しくは以下となります。

# Hello World

第5章 Wikipediaから今日は何の日の年号をCSVで取得できない場合

「第5章 Beautiful Soupでスクレイピングする」の「スクレイピング結果をCSVに保存する」(紙版74ページ)で、日によって複数の丸括弧が使われている場合に対応できないケースがありました。紙版74ページで、以下のように記述されている箇所があります。

match=re.search("\((.*?)年\)",today_text)

この記述を以下のように修正します。

match = re.search("\(([1-9].*?)年\)", today_text)

これによりWikipediaの今日は何の日で複数の丸括弧が使われていても正常取得できるようになります。

第6章 robots.txt取得の誤記

「第6章 スクレイピングのテクニックと考慮すべき点」のrobots.txtの取得で、1行ずつ処理を解説している箇所(紙版90ページ)に以下のように記述していました。

robots.agent("*")

正しくは以下の記述となります。

agent = robots.agent("*")

また、同じページで、以下のように記述している箇所がありました。

agent = agent.allowed("https://allabout.co.jp/r_finance/")

正しくは以下の記述となります。

agent.allowed("https://allabout.co.jp/r_finance/")

この2箇所を修正することで正常に動作します。1行ずつ解説している箇所の誤記で、ソースコード全体を掲載している箇所ではこの記述になっており、正常に動作いたします。

第6章 プロキシサーバー構築でエラーが出た場合

「第6章 スクレイピングのテクニックと考慮すべき点」のプロキシサーバーの利用(紙版108ページ)で、プロキシサーバーを構築すると以下のエラーが出る場合があります。

curl: (56) Received HTTP code 403 from proxy after CONNECT

このエラーの原因としては、Squidインストール時の/etc/squid/squid.confの以下の記述が影響している可能性があります。

http_access deny all

その場合、/etc/squid/squid.confを編集して、Squidインストール時に記載されたhttp_access deny allをコメントアウトすると正常動作します。コメントアウト後に、本書の「#自分のグローバルIPアドレスだけを接続許可」以下のconf設定は必ず設定するようにしてください。

第11章 ghp-importインストールの誤記

「第11章 スクレイピング結果を自動通知する」の「11.7 静的サイトジェネレーターを使ってHTMLに出力する」(紙版189ページ)で、ライブラリのインストールコマンドを以下のように記述している箇所がありました。

$ pip3 ghp-import

正しくは以下のコマンドになります。

$ pip3 install ghp-import

第11章 Pelicanのpelican-quickstartが起動できない場合

「第11章 スクレイピング結果を自動通知する」の「11.7 静的サイトジェネレーターを使ってHTMLに出力する」(紙版188ページ)で、環境によってpelican-quickstartコマンドが起動できない場合があるようです。このようなケースでは、ホームディレクトリの~/.local/binにパスを通すと正常に動作する場合があります。

bashを使っている場合は~/.bash_profile、zshを使用している場合は~/.zshrcに以下を記述します。

export PATH=~/.local/bin:$PATH

bashの場合、以下のコマンドでシェルの再読み込みを行います。

$ source ~/.bash_profile

zshの場合、以下のコマンドでシェルの再読み込みを行います。

$ source ~/.zshrc

これでpelican-quickstartが使用できるようになる場合があります。