Я пытаюсь разбирать файлы так же, как this, но для многих долгот и широт. Гусеница перемещается по всем веб-страницам, но ничего не выводит.Попытка разобрать файлы JSON с помощью Scrapy
Вот мой код:
import scrapy
import json
from tutorial.items import DmozItem
from scrapy.http import Request
from scrapy.contrib.spiders import CrawlSpider, Rule
class DmozSpider(CrawlSpider):
name = "dmoz"
allowed_domains = ["proadvisorservice.intuit.com"]
min_lat = 35
max_lat = 40
min_long = -100
max_long = -90
def start_requests(self):
for i in range(self.min_lat, self.max_lat):
for j in range(self.min_long, self.max_long):
yield scrapy.Request('http://proadvisorservice.intuit.com/v1/search?latitude=%d&longitude=%d&radius=100&pageNumber=1&pageSize=&sortBy=distance' % (i, j),
meta={'index':(i, j)},
callback=self.parse)
def parse(self, response):
jsonresponse = json.loads(response.body_as_unicode())
for x in jsonresponse['searchResults']:
item = DmozItem()
item['firstName'] = x['firstName']
item['lastName'] = x['lastName']
item['phoneNumber'] = x['phoneNumber']
item['email'] = x['email']
item['companyName'] = x['companyName']
item['qbo'] = x['qbopapCertVersions']
item['qbd'] = x['papCertVersions']
yield item
В коде отсутствует 'print()'. – kay
Я называю это через терминал ... «scrapy crawl dmoz -o items.json» ... зачем мне печатать? ... он должен выводить все элементы в файл items.json – Prathmesh
Чтобы решить этот вид проблема заключается в том, что вы помещаете в ваш код множество операторов 'print()' для деактивации, где информация теряется. Без этого вы не знаете, может быть, 'scrapy.Request()' останавливается, если вы ошибочно поменяли начало и конец диапазона, если 'response.body_as_unicode()' киосков или что проблема. Сначала найдите точку, которая не достигнута, затем повторите попытку. – kay