2
전자 메일의 경우 Craigslist 스크랩을 사용하기 위해 온라인 자습서를 일부 수행했습니다. 나는이 코드를 가지고 있지만 명령을 실행하고 json 파일로 내보낼 때 파일을 생성하지만 거기에는 유일한 '['가 있습니다.Scrapy JSON 내보내기 문제
도움을 주시면 감사하겠습니다. 아래는 내 코드입니다.
from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector
from scrapy_demo.items import ScrapyDemoItem
import urlparse
from scrapy.http.request import Request
class ScrapyDemoSpider(BaseSpider):
name = "scrapy_demo"
allowed_domains = ["buffalo.craigslist.org"]
start_urls = ['http://buffalo.craigslist.org/search/cps/']
def parse(self, response):
hxs = HtmlXPathSelector(response)
listings = hxs.select('//....')
links = []
#scrap listings page to get listing links
for listing in listings:
link = listing.select('..../@href').extract()[0]
links.append(link)
#parse listing url to get content of the listing page
for link in links:
item = ScrapyDemoItem()
item['link'] = link
yield Request(urlparse.urljoin(response.url, link), meta={'item': item}, callback=self.parse_listing_page)
#get next button link
next_page = hxs.select("//..../@href").extract()[0]
if next_page:
yield Request(urlparse.urljoin(response.url, next_page), self.parse)
#scrap listing page to get content
def parse_listing_page(self, response):
hxs = HtmlXPathSelector(response)
item = response.request.meta['item']
item['title'] = hxs.select('//..../text()').extract()[0]
item['content'] = hxs.select('//..../text()').extract()[0]
yield item
완벽한을, 정말 고맙습니다. 매력처럼 작동합니다. – keithp