2015-08-14 69 views
0

我想從一個網頁刮和分析一些數據。問題是經過多次嘗試,腳本的行爲不同。不同的結果爲非常相同的方法

import mLib 
import requests 
import urlparse 

URL = 'http://www.distrelec.sk/' 

class base(): 

    def __init__(self): 
     self.soup = mLib.getSoup(URL) 

    def get_info(self,url): 

     soup = mLib.getSoup(url) 
     up_left_table_outer = soup.find('table',class_='validate-checkbox-group') 

     for row_outer in up_left_table_outer.find_all('tr'): 
      key_value = row_outer.find_all('td') 
      key = key_value[0].label.text 
      value = key_value[1].span.text 
      yield key,value 


bs = base() 
for i in range(1,20): 
    print dict(bs.get_info('http://www.distrelec.sk/sk/socket-mm-cerna-multi-contact-lb4-black/p/11034944?q=*&filter_Buyable=1&filter_Category3=Laborat%C3%B3rne+konektory&page=1&origPageSize=10&simi=99.8')) 

這裏是輸出的一部分(每行應該是相同的)。正如你所看到的,聯繫人B和聯繫人A的關鍵有時是不同的。問題可能是網頁上有多行文字:

{u'Barva': u'\u010cern\xe1', u'Jmenovit\xe9 nap\u011bt\xed': u'30 VAC 60 VDC, 20 A', u'Contact A': u'Z\xe1suvka', u'Velikost': u'\xf8 4 mm', u'Contact B': u'M6'} 
{u'Barva': u'\u010cern\xe1', u'Jmenovit\xe9 nap\u011bt\xed': u'30 VAC 60 VDC, 20 A', u'Contact A': u'\xf8 4 mm', u'Velikost': u'\xf8 4 mm', u'Contact B': u'P\xe1jen\xed'} 
{u'Barva': u'\u010cern\xe1', u'Jmenovit\xe9 nap\u011bt\xed': u'30 VAC 60 VDC, 20 A', u'Contact A': u'Z\xe1suvka', u'Velikost': u'\xf8 4 mm', u'Contact B': u'M6'} 
{u'Barva': u'\u010cern\xe1', u'Jmenovit\xe9 nap\u011bt\xed': u'30 VAC 60 VDC, 20 A', u'Contact A': u'\xf8 4 mm', u'Velikost': u'\xf8 4 mm', u'Contact B': u'M6'} 
{u'Barva': u'\u010cern\xe1', u'Jmenovit\xe9 nap\u011bt\xed': u'30 VAC 60 VDC, 20 A', u'Contact A': u'Z\xe1suvka', u'Velikost': u'\xf8 4 mm', u'Contact B': u'M6'} 
{u'Barva': u'\u010cern\xe1', u'Jmenovit\xe9 nap\u011bt\xed': u'30 VAC 60 VDC, 20 A', u'Contact A': u'Z\xe1suvka', u'Velikost': u'\xf8 4 mm', u'Contact B': u'M6'} 
{u'Barva': u'\u010cern\xe1', u'Jmenovit\xe9 nap\u011bt\xed': u'30 VAC 60 VDC, 20 A', u'Contact A': u'\xf8 4 mm', u'Velikost': u'\xf8 4 mm', u'Contact B': u'P\xe1jen\xed'} 
{u'Barva': u'\u010cern\xe1', u'Jmenovit\xe9 nap\u011bt\xed': u'30 VAC 60 VDC, 20 A', u'Contact A': u'\xf8 4 mm', u'Velikost': u'\xf8 4 mm', u'Contact B': u'M6'} 

您是否知道問題出在哪裏?

+0

也許URL的內容正在改變?編輯:只是檢查;他們是。 – Cyphase

回答

相關問題