2016-09-05 6 views
0

私はScrapyの初心者です。 http://doc.scrapy.org/en/latest/intro/tutorial.html
私はウェブサイト上にあるものとまったく同じです。画面上にサイトを印刷しようとすると、関連する情報は表示されません。
ここ が私のコードです:
私はScrapyのチュートリアルに従いましたが、選択された情報はありません。

items.py

class DmozIterm(scrapy.Item): 
    #define item for Dmoz 
    title=scrapy.Field() 
    link=scrapy.Field() 
    desc=scrapy.Field() 

domzSpider.py

import scrapy 
class DmozSpider(scrapy.Spider): 
    name = "dmoz" 
    allowed_domains = ["dmoz.org"] 
    start_urls = [ 
     "http://www.dmoz.org/Computers/Programming/Languages/Python/Books/", 
     "http://www.dmoz.org/Computers/Programming/Languages/Python/Resources/" 
    ] 

    def parse(self, response): 
     for sel in response.xpath('//ul/li'): 
      title = sel.xpath('a/text()').extract() 
      link = sel.xpath('a/@href').extract() 
      desc = sel.xpath('text()').extract() 
      print title, link, desc 

は最後に、私は私が得ることができない理由を見つけましたターミナルの掻き集められた情報:

コマンドを実行するディレクトリscrapy crawl dmozは、私のScrapyプロジェクトのルートディレクトリではありません。この愚かな間違いを抱くことは、ポストによって他人のために無効にされている可能性があります!

+0

Scrapyのチュートリアルでは、関連する問題のために私の答えを参照してくださいdmoz.orgためのビット時代遅れであります/ 39243009/scrapy-tutorial-example/39243432#39243432 – Granitosaurus

+0

ええ、あなたのおかげで私はサイトをチェックしました、それは本当です、彼らはhtmlを変更しました。私のコードを変更したにもかかわらず、私はまだ端末に同じ出力を持っています。つまり、端末上の21のサイトについての予想される情報は見ていません。 –

答えて

0

それはサイトのHTMLが変更されたこと、これを試してみてくださいようだ:http://stackoverflow.com/questions:

for sel in response.xpath('//div[@id="site-list-content"]/div'): 
    title = sel.xpath('./div[@class="title-and-desc"]/a/div/text()').extract() 
    link = sel.xpath('./div[@class="title-and-desc"]/a/@href').extract() 
    desc = sel.xpath('.//div[contains(@class, "site-descr")]/text()').extract() 
    print title, link, desc 
+0

ええ、@Granitosaurusに感謝します。私はサイトをチェックしました。それは本当です、彼らはhtmlを変更しました。私は自分のコードを私のコードに置き換えても、私はまだ端末に同じ出力を持っています。つまり、端末の21のサイトについての予想される情報は見ていません。 –

+0

しかし、ルートディレクトリで 'scrap shell" http://www.dmoz.org/Computers/Programming/Languages/Python/Books/ "を実行し、' response.xpath( '// div [@id –

+0

私の場合、これはうまく動作しますが、これを使ってデバッグすることがあります scrapy.shellからimport inspect_response def parse( "site-list-content")/ div''私は情報を得ることができます。自己、応答): inspect_response(応答、自己) .... 詳細はこちらをご確認ください https://blog.scrapinghub.com/2016/05/18/scrapy-tips-from-the- pros-may-2016-edition / –

関連する問題