2017-09-20 13 views
0

私は4つのフィールドを掻き回そうとしています:画像、リンク、名前、価格。治療はできませんそのフィールドを取得する

このコード:

import scrapy 
from scrapy import Request 

#scrapy crawl jobs7 -o job7.csv -t csv 
    class JobsSpider(scrapy.Spider): 
     name = "jobs8" 
     allowed_domains = ["vapedonia.com"] 
     start_urls = ["https://www.vapedonia.com/11-mods-potencia-"] 

     def parse(self, response): 
      products = response.xpath('//div[@class="product-container clearfix"]') 

      for product in products: 
       image = product.xpath('div[@class="center_block"]/a/img/@src').extract_first() 
       link = product.xpath('div[@class="center_block"]/a/@href').extract_first() 
       name = product.xpath('div[@class="right_block"]/p/a/text()').extract_first() 
       price = product.xpath('div[@class="right_block"]/div[@class="content_price"]/span[@class="price"]').extract_first() 
       print image, link, name, price 

がエラーを取得します。

私は、検査ツールとプラグインを使用して、xpath式を作成しようとしています。私も自分自身で試しました。それはウェブページでは動作しますが、スクリプトでは動作しません。

私はしばらくの間戦ってきましたが、何が起きているのか理解できません。

誰かが何が起こっている可能性について考えていますか?

ありがとうございます!

PS:ここで私が手にエラーがあります: 2017年9月21日午前7時55分31秒[scrapy.core.engine] INFO:スパイダーは 2017年9月21日午前7時55分31秒[scrapy.extensionsをオープンしました。 (scrap.extensions.telnet)DEBUG:Telnetコンソールは127.0をリッスンしています。 .0.1:6023 2017-09-21 07:55:32 [scrapy.core.engine] DEBUG:クロール済み(200)https://www.vapedonia.com/robots.txt>(リファラーなし) 2017- 09-21 07:55:32 [scrapy.core.engine] DEBUG:クロール済み(200)https://www.vapedonia.com/11-mods-potencia-(referer:None) https://www.vapedonia.com/4688-home_default/-ipv-6x-azul-pionner4you.jpghttps://www.vapedonia.com/pionner4you/2075--ipv-6x-azul-pionner4you.html IPV 6X AZUL - PIONNER4YOU 2017-09-21 07:55:32 [scrapy.core.scraper]エラー:スパイダーエラー処理https://www.vapedonia.com/11-mods-potencia-(referer:None) トレースバック(最新のコールが最後): ファイル "C:\ Users \ eric \ Miniconda2 \ lib \ site-packages \ C:\ Users \ eric \ Documents \ Web Scraping \ 0 - ファイル名:C:\ Users \ eric \ Documents \ Web \ Screwing \ 0 \ ファイル "C:¥Users¥eric¥Miniconda2¥lib¥encodings¥cp850"に変換してください。 UnicodeEncodeError: 'charmap'コーデックは26の位置にu '\ u20ac'文字をエンコードできません: に対応する文字列2017-09-21 07:55:32 [scrapy.core.engine] INFO:閉会蜘蛛(終了) 2017年9月21日午前7時55分32秒[scrapy.statscollectors] INFO:Scrapy統計をダンプ:価格= product.xpath:

+0

どのようなエラーが表示されますか? – theUtherSide

+0

私が今得する唯一のエラーは、ソースコードのインデントが間違っていることです。修正された場合、それは私のために働く。 –

+0

コードは完全に動作しています。完全な例外の詳細を投稿してください。 –

答えて

0

は、それは私がこれを入れている、文字セットの問題でした012_spirst().encode( "utf-8")を入力してください(例:div [@ class = "right_block"]/div [@ class = "content_price"]/span [@ class = "price"] ')。

これは私にとっては正しい解決策ですが、ファイルレベルで設定することもできます。

+0

ちょうど1つのこと:クラスの直前に、私は書いた:#scrap crawl jobs7 -o job7.csv -t csvしかし、これは私がスパイダーをクロールするために使用したものではなく、#scrap crawl jobs8 -o job8.csv -t csv。私は通常何トンものテストをしています。私は通常、最後に作成されたファイルをコピーして新しいファイルを作成します。それはエラーがこれからではなかったことを明らかにするだけでした。 – eric5037

関連する問題