2017-05-12 26 views
0

我試圖寫一個eBay的腳本,通過每一個產品進入一個頁面,進入下一個頁面,並做了同樣的Python的Scrapy不會通過所有的標籤

,但由於某種原因,腳本將每下一個頁面,但不是通過一個網頁,我認爲每個項目我都寫正確的選擇

一個UL包含所有元素代表一個頁面

每個項目,但問題是scrapy只經過冷杉在頁面ST鏈接,跳轉頁面的其餘部分,進入下一個頁面

的每一頁scrapy只需只有一個項目,它應該由一個

我已經使用把所有的項目一個的xpath選擇.//ul[@id="ListViewInner"]/liUL與ID ListViewInner和在它之下的每

我已經使用CSS選擇.sresult.lvresult.clearfix.li.shic類,每個Li還但在每種情況下

只服用1個項目從頁面 here 我正在打印

停止我在這裏爲每個項目部分(其中scrapy應該進入)但退出後,才未通過的將剩餘的第一個元素在頁面

這裏49項是簡單的代碼

class EbayspiderSpider(scrapy.Spider): 
    name = "ebayspider" 
    #allowed_domains = ["ebay.com"] 
    start_urls = ['http://www.ebay.com/sch/hfinney/m.html?item=132127244893&rt=nc&_trksid=p2047675.l2562'] 


    def parse(self, response): 

     DEF_SELECTOR = './/*[@id="ListViewInner"]/li' 

     for attr in response.xpath(DEF_SELECTOR): 

      #item = EbayItem() 
      #linkse = 'a.vip ::attr(href)' 
      #link = attr.css(linkse).extract_first() 
      #yield scrapy.Request(urljoin(response.url, link), callback=self.parse_link, meta={'item': item})""" 

      print '\n\n\tI AM HERE!!' 
     #next_page = '.gspr.next ::attr(href)' 
     #next_page = response.css(next_page).extract_first() 
     #if next_page: 
      #yield scrapy.Request(urljoin(response.url, next_page), callback=self.parse) 

我曾評論執行部分會導致程序甚至沒有鑼THR ough 50種產品在每個頁面

下面是從頁

here 檢查元素和擴大 here

我到底做錯了什麼?

回答

2

大膽猜測:在settings.py

設置ROBOTSTXT_OBEY=False你的日誌顯示scrapy正在下載的robots.txt,如果它服從它的內容是絕對不會再抓取任何。

除此之外,我沒有看到你的解析函數不應該提取多個項目/鏈接的原因。

當我在scrapy shell跑這(無ROBOTSTXT_OBEY):

for attr in response.xpath('//*[@id="ListViewInner"]/li'): 
    print attr.css('a.vip ::attr(href)').extract() 

(這是基於你的代碼100%)...我收到了一長串網址:

[u'http://www.ebay.com/itm/Cat-Caterpillar-Excavator-Monitor-320B-320BL-320BLN-321B-322BL-325BL-151-9385-/361916086833?hash=item5443e13a31:g:NMwAAOSwX~dWomWJ'] 
[u'http://www.ebay.com/itm/257954A1-New-Case-580SL-580SM-580SL-Series-2-Backhoe-Loader-Hydraulic-Pump-/361345120303?hash=item5421d8f82f:g:KQEAAOSwBLlVVP0X'] 
#..... 

......這就是你所期望的。

我在代碼中看到的另一個問題是如何通過鏈接加入response.url來創建請求URL的方式,而鏈接已經保存了一個完整的鏈接。這裏最好使用Scrapy的linkextractors,因爲他們可以處理這種開箱即用的情況。 PS:請以文本格式發佈您的日誌,使搜索和區分更容易。