2017-04-27 6 views
0

を使用して、LD + JSONを解析する方法:私は美しいスープ私はいくつかのウェブスクレイピングをしようとしてきたと私は、このタグ内に位置し、いくつかの興味深いデータに出くわしたのpython

を使用してそのタグを分離することができました

<script type="application/ld+json"> 

html = urlopen(url) 
soup = BeautifulSoup(html, "lxml") 

p = soup.find('script', {'type':'application/ld+json'}) 
print p 

しかし、私はデータを操作したり、そのタグからデータを抽出することができませんでした。

私はそれのうちいくつかのものを得るために正規表現を使用しようと私が手:

TypeError: expected string or buffer 

がどのように私はそのスクリプトタグからデータを取得し、私は辞書や文字列を使用したいようにそれを使用することができます?私はPython 2.7を使っています。

答えて

0

あなたは上記のコメントは、私が使用した最後に(感謝が)

を助けなかった

html = urlopen(url).read() 
soup = BeautifulSoup(html, "html.parser") 
p = soup.find('script', {'type':'application/ld+json'}) 
print p.contents 
+0

私は ")(HTML /読み取り" からというエラーを取得する) それはこのことを言う: トレースバック(最新の呼び出しの最後): get_priceで ファイル "test.py"、20行、() ファイル "test.py"、16行目、get_price スープ= BeautifulSoup(html、 "html.read()") ファイル "C:\ PYTHON27 \ lib \ site-packages \ bs4 \ __ init__.py"、行あなたがリクエストした機能:html.read()でツリービルダを見つけることができませんでした。パーサーライブラリをインストールする必要がありますか? – wessells

+0

そのhtml.parserでないhtml.read()私の間違い –

+0

必要ならば代わりにlxmlを使うことができます –

0

を解析するためにHTMLをお読みください:

p = str(soup.find('script', {'type':'application/ld+json'})) 

私はにそれを強制的に本当にかわいい弦ではありませんでしたが、それは仕事をしました。私はそこにおそらく良い方法があることを知っているが、これは私のために働いた。

関連する問題