CSSセレクタとBeautifulSoupの解析結果が違う???
Python、BeautifulSoupでスクレイピングのコードを書いていた時のことです。
あるページのdiv.hugahugaをスクレイピングしたく、ChromeのコンソールからCSSセレクタで実行したところ問題ないかなと思いました。
$$('div.hugahuga'); >[5]
(ちゃんと5件取れてる!OK!)
しかし、BeautifulSoupで同じようにやってみたところ、なぜか4件しか取れず困惑。
results = soup.find_all("div", class_="hugahuga") len(results) #=>4
なぜ???
確認してみましたが、特に関数やパラメータが間違っているわけでもなく、ページ取得が失敗しているわけでもありませんでした。
色々試してみた結果、BeautifulSoupの解析器をlxmlからhtml5libに変えてみたところ、無事全件取得することができました。
今まで何も考えず脳死でlxmlを使ってきて初めて痛い目を見ました。ちゃんと確認しないとダメですね……。