1

特定のクエリに関連するすべての記事の要約を取得できるように、Scrapy を使用して New York Times API からの JSON 応答を CSV に解析しようとしています。これを、リンク、発行日、概要、およびタイトルを含む CSV として吐き出して、概要の説明でいくつかのキーワード検索を実行できるようにしたいと思います。私は Python と Scrapy の両方を初めて使用しますが、これが私のスパイダーです (HTTP 400 エラーが発生しています)。スパイダーで自分の API キーを xx しました。

from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector
from nytimesAPIjson.items import NytimesapijsonItem
import json
import urllib2

class MySpider(BaseSpider):
    name = "nytimesapijson"
    allowed_domains = ["http://api.nytimes.com/svc/search/v2/articlesearch"]
    req = urllib2.urlopen('http://api.nytimes.com/svc/search/v2/articlesearch.json?q="financial crime"&facet_field=day_of_week&begin_date=20130101&end_date=20130916&page=2&rank=newest&api-key=xxx)

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

          item = NytimesapijsonItem()
          item ["pubDate"] = jsonresponse["pub_date"]
          item ["description"] = jsonresponse["lead_paragraph"]
          item ["title"] = jsonresponse["print_headline"]
          item ["link"] = jsonresponse["web_url"]
          items.append(item)
          return items

Scrapy 以外のアイデアや提案があれば、私に知らせてください。前もって感謝します。

4

1 に答える 1

2

メソッドを設定start_urlsして使用する必要がありますparse

from scrapy.spider import BaseSpider
import json


class MySpider(BaseSpider):
    name = "nytimesapijson"
    allowed_domains = ["api.nytimes.com"]
    start_urls = ['http://api.nytimes.com/svc/search/v2/articlesearch.json?q="financial crime"&facet_field=day_of_week&begin_date=20130101&end_date=20130916&page=2&rank=newest&api-key=xxx']

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

        print jsonresponse
于 2013-09-16T19:23:44.630 に答える