システム開発・構築の神様

新しいサービスや技術を使った開発や構築。その他不具合解決など

python スクレイピング NotImplementedError: Only the following pseudo-classes are implemented: nth-of-type.

pythonのスクレイピングで、サイトデータを取得するテストアプリを開発しています。

(もちろん自前のサービスなので気兼ねなくテストしています)

pythonのスクレイピングは、初心者なので利用できるライブラリーと、その使い方を調査しているところです。

import requests
from bs4 import BeautifulSoup

を使うのがpython3的にはベストなのでしょうか?

ネット上のサイトを参考にしていると、使われているのがpython2だったりと、参考になるような?ならないような?古い情報までが見つかります。

そして、一通りの使い方が分かったので、サクッとベースを作り実行してみると・・・

NotImplementedError: Only the following pseudo-classes are implemented: nth-of-type.

エラーが発生してしまい正常に動作していません。

あれ?

Google Chromeのデベロッパーツールから「Copy Selecltor」した値なので、記述ミスは無いはずなのですが・・・

調べて見ると

section:nth-child(1)

nth-childがエラーの原因みたいでした。

nth-childをエラーメッセージのnth-of-typeへ変更することで、正常動作するようになりました。

その他、ユニコード文字列で、記号(アイコン)などがある場合、pythonのprintでエラーになってしまいます。

# UnicodeEncodeError: 'cp932' codec can't encode character '\u9999' in position 5: illegal multibyte sequence

その場合は、対象の文字を置換して対応するしかないのでしょうか?

python スクレイピングは奥が深いですね。