2016-09-28 22 views
0

これは繰り返しの質問かもしれません。私はScrapyのスパイダーを動かそうとしていますが、できません。 「HtmlResponseには属性urljoinがありません」というエラーメッセージが表示されるのはなぜですか? request_countが3で、response_countも3の場合、Scrapy統計はどういう意味ですか?私のコードはここにあります。私はこの問題について何か助けていただければ幸いです。Scrapyがクロール/解析されないのはなぜですか?

import scrapy 
from scrapy.http.request import Request 
from scrapy.spiders import BaseSpider 
from scrapy.selector import HtmlXPathSelector 

class BotSpider_2(BaseSpider): 
    name = 'BotSpider_2' 
    name = "google.co.th" 
    start_urls = ["http://www.google.co.th/"] 


    def parse(self, response): 
     sel = Selector(response) 
     sites = sel.xpath('//title/text()').extract() 
     print sites 

答えて

0

まずはあなたのインポートが間違っています。たとえば、Spiderの代わりにBaseSpiderを使用する理由を教えてください。また、Selectorのインポートがありませんでした。についてurljoinあなたがこのエラーを投げる投稿したコードが表示されない取得を記述したエラー。 urljoinは、現在のURLといくつかのパスを結合してクロールに使用できる絶対URLを作成するscrapy v1またはそれ以降のResponseオブジェクトの関数です。

$ scrapy shell "https://scrapy.org" 
In [1]: response.url 
Out[1]: 'https://scrapy.org' 

In [2]: response.urljoin('/some/cool/path') 
Out[2]: 'https://scrapy.org/some/cool/path' 

インポートをクリーンアップし、コードは魅力的に機能します。

import scrapy 
from scrapy.selector import Selector 

class BotSpider_2(scrapy.Spider): 
    name = "google.co.th" 
    start_urls = ["http://www.google.co.th/"] 


    def parse(self, response): 
     sel = Selector(response) 
     sites = sel.xpath('//title/text()').extract() 
     print(sites) 
関連する問題