2017-12-12 33 views
0

私は "htmlOutputFileUrl"を抽出することができる形式に、スクリプトのhtmlデータをスクラップして変換するためのURL(リンク)のリストに対してforループを実行しようとしています。しかし、私はコードを実行するたびに、 "JSONDecodeError:行末の終わりの列:2998行(2997行)"というエラーが発生し、その情報を抽出することさえできません。Python Web Scraping Unterminated String

「スクリプト」を以下のように変換できないのですか、またはコードのフォーマットが正しくありませんか?

私が使用している最初のURLは次のとおりです。 'のhttp:/www.kaggle.com/kanncaa1/data-sciencetutorial-for-beginners'

import requests 
import json 
import csv 
from bs4 import BeautifulSoup 
from lxml import etree 

for url in links: 

     test = requests.get(url) 
     getTest=test.text 
     data = BeautifulSoup(getTest, "lxml") 
     update = data.find('div',class_='site-layout__main-content').find('script').text.split(";") 
     dataLoad = json.loads((update[2][update[2].index('{'):len(update[2])-1])) 
     print (dataLoad) 

答えて

0

あなたは;に分割しているが、1がありますJSONオブジェクトの途中で抽出しようとしているので、これはオブジェクトを2つに分割します。要素2と要素3を組み合わせて、目的の結果を得ることができます。

raw_data = update[2][update[2].index('{')] + update[3][:-1] 

これを動作させることはできますか。有効なJSONオブジェクトがあるという保証はありません。特に、JSONはJavaScript自体よりもはるかに制限的です。

関連する問題