2017-11-30 12 views
0

ページをcsvにスクレイプするにはどうすればよいですか?私のCSVは表示されないか、空白になりますどのようにして治療のcsvにスクラップするのですか

私は走りました:scrapy crawl jobs -o output.csv。 csvが表示されている間、何も表示されません。

# -*- coding: utf-8 -*- 
import scrapy 


from scrapy import cmdline 
cmdline.execute("scrapy crawl jobs".split()) 

from scrapy.contrib.spiders import CrawlSpider, Rule 
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor 
from scrapy.selector import HtmlXPathSelector 
from craigslist_sample.items import CraigslistSampleItem 

class MySpider(CrawlSpider): 
    name = "jobs" 
    allowed_domains = ["sfbay.craigslist.org"] 
    start_urls = ["http://sfbay.craigslist.org/search/npo"] 

    rules = (
     Rule(SgmlLinkExtractor(allow=(), restrict_xpaths=('//a[@class="button next"]',)), callback="parse_items", follow= True), 
    ) 

    def parse_items(self, response): 
     hxs = HtmlXPathSelector(response) 
     titles = hxs.xpath('//span[@class="pl"]') 
     items = [] 
     for titles in titles: 
      item = CraigslistSampleItem() 
      item["title"] = titles.xpath("a/text()").extract() 
      item["link"] = titles.xpath("a/@href").extract() 
      items.append(item) 
     return(items) 

    class MySpider(CrawlSpider): 
     name = 'csvexample' 
     start_urls = ['C:/example.csv'] 
     delimiter = ',' 
     headers = ['Address', 'Website'] 
+0

もう1つの例です。 https://pastebin.com/yyiunAX2。同じ問題。ブランクCSV –

+0

'応答'を表示します。それには何が含まれていますか? –

+0

@JohnZwinckプリント(レスポンス)のために何も得られません。 https://pastebin.com/nZHtHs8X –

答えて

0

これを試してください - あなたはそれぞれのアイテムを個別にエクスポートする必要があると思います。そのたびにアイテムクラスの特別なインスタンスを作成し、実際にアイテムを返すことはありません。リストにアイテムを追加してからリストを返すので、アイテムのパイプラインは決して通過しません。また、あなたのタイトルのリストでは、複数のタイトルのタイトルについてあなたが言った。 :

# -*- coding: utf-8 -*- 
import scrapy 


from scrapy import cmdline 
# cmdline.execute("scrapy crawl jobs".split()) -- Not sure what this line achieves? 

from scrapy.contrib.spiders import CrawlSpider, Rule 
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor 
from scrapy.selector import HtmlXPathSelector 
from craigslist_sample.items import CraigslistSampleItem 

class MySpider(CrawlSpider): 
    name = "jobs" 
    allowed_domains = ["sfbay.craigslist.org"] 
    start_urls = ["http://sfbay.craigslist.org/search/npo"] 
    rules = (
    Rule(SgmlLinkExtractor(allow=(), restrict_xpaths=('//a[@class="button next"]',)), callback="parse_items", follow= True), 
    ) 

    def parse_items(self, response): 
     hxs = HtmlXPathSelector(response) 
     titles = hxs.xpath('//span[@class="pl"]') 
     for title in titles: 
      item = CraigslistSampleItem() 
      item["title"] = title.xpath("a/text()").extract_first() 
      item["link"] = title.xpath("a/@href").extract_first() 
      yield item 
+0

私はまだそれを実行した後に空白のcsvを取得しています:scrapy crawl jobs -o output.csv。私は未解決の参照を取得しています:from craigslist_sample.items import CraigslistSampleItem - https://pastebin.com/fnGSNQR3 –

関連する問題