ゆとりニートの日記

理系院卒⇛就職⇛1年で退社。ノースキルでノージョブなゆとり世代ニートの日記。

beautiful soupでスクレイピングした時、取得したhtmlが実際のソースと違う現象

どうも。のらくらです。

 

f:id:Norakura:20170902234055j:plain

趣味でpythonのbeautiful soupを使ってスクレイピングの練習をしてたんですけど、

何故かあるはずのp要素が取得できないという現象にぶち当たってました。

 

 

なんでだ~と頭を悩ませて、pタグの上位のdivを取得しても、そもそもpタグが存在しないような扱い。

 

 

実際のソースとbeautiful soupで取得したhtml(DOMっていうんですか?)が異なっているようでした。

 

 

エンジニアでもないので詳しいことが分からずぐぐること小一時間...。

何故か解決しました!

 

from bs4 import BeautifulSoup
import urllib.request

url = "http://~~~~"#自サイトURL
f = urllib.request.urlopen(url)
html = f.read().decode('utf-8')
soup = BeautifulSoup(html, "html.parser")

 

の最後の行を

soup = BeautifulSoup(html, "lxml")

 

にしたところちゃんと取得できるように。

 

 

ちなみに参考にさせて頂いたのはこちらの記事↓

vaaaaaanquish.hatenablog.com

 

完全に助かった。

趣味とはいえ直せないと気持ち悪かったので。