2

私はスクレイピーでページをスクレイピングすることを学んでいます。提示されたデータの一部は JSON 形式で、これまでのところ JSON ページを正常にスクレイピングできませんでした。私はそれができることを知っています(私の唯一の以前の質問と役立つ回答のおかげで)が、私はそれを機能させることができません. a) JSON の成功したスクレイピー スクリプトの例を誰かが知っているかどうか、または b) いくつかのポインターを教えてください。

私はこのページをいくつかの助けとして使用しています: http://www.jroller.com/evans/entry/parsing_json_with_python、例として使用されているページをスクレイピングしようとしています。

私のスパイダーは実行されますが、何も削られません。私は間違いを犯すことを知っていますが、スパイダーのすべての小さな側面を少なくとも一度は変更したように感じ、今は混乱しています.

私のスパイダーの基礎(以下の提案に応じて編集)は次のとおりです。

from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector
from learnjson.items import learnjsonitems, Field
import json
import urllib2

class MySpider(BaseSpider):
name = "jsonexample"
allowed_domains = ["googleapis.com"]
req = urllib2.urlopen('http://maps.googleapis.com/maps/api/geocode/json?address=8-10%20Broadway,%20London%20SW1H%200BG,%20United%20Kingdom&sensor=false'
)

def json_parse(self, response):
    jsonresponse = json.loads(response.body_as_unicode())
    latitude = jsonresponse["lat"]


    print item["lat"]

スクレイピングされたページの例(私のデータではなく、練習するもの)を例にとると、住所と緯度/経度などを引き出そうとしましたが、何もうまくいかないようです。

4

1 に答える 1

1

json.Add のインポートを見逃していると思います

コードに json をインポートします。

また、jsonファイルをurllib2で抽出して開きます。正常に動作します。そして、次のようなjson応答のコードを追加できます。

class MySpider(BaseSpider):
    ...   

    def parse(self, response):
         jsonresponse = json.loads(response)

         item = MyItem()
         item["firstName"] = jsonresponse["firstName"]             

         return item

お役に立てれば :)

于 2013-08-21T13:23:41.220 に答える