2016-06-29 14 views
1

thisチュートリアルを使用してテーブルを削り取ろうとしています。私は確かに私が正しいテーブルを得ていると確信していますが、私の出力はu'\n'でいっぱいのリストです。単純なhtmlテーブルをスクラップすると、 ' n(Python with BeautifulSoup)が返されます

if len(cells) == 10:は、ヘッダーではなく実際の内容のみを擦ることができます。番号を変更すると、私のリストはすべてNoneとして返されますが、数字が10の場合、それらは正しい数の項目で満たされます。それらの項目はすべて同じです。

私は間違っていますか?

ありがとうございました!

# -*- coding: utf-8 -*- 
""" 
Created on Wed Jun 29 13:21:36 2016 

@author: natasha 
""" 
import urllib2 

ukr = "http://www.ukrstat.gov.ua/operativ/operativ2013/rp/zn_ed_reg/zn_ed_reg_e/zn_ed_reg_2014k_e.htm" 

page = urllib2.urlopen(ukr) 

from bs4 import BeautifulSoup 

soup = BeautifulSoup(page) 

#scraping just the first table 
table = soup.find('table', id = "table2") 

#creating lists for future variables 

NAM=[] 
TOT=[] 
AGR=[] 
IND=[] 
CON=[] 
TRA=[] 
STO=[] 
ACC=[] 
INF=[] 
FIN=[] 

#looping over rows 

for row in table.findAll("tr"): 
    cells = row.findAll("td") 
    if len(cells) == 10: 
     NAM.append(cells[0].find(text=True)) 
     TOT.append(cells[1].find(text=True)) 
     AGR.append(cells[2].find(text=True)) 
     IND.append(cells[3].find(text=True)) 
     CON.append(cells[4].find(text=True)) 
     TRA.append(cells[5].find(text=True)) 
     STO.append(cells[6].find(text=True)) 
     ACC.append(cells[7].find(text=True)) 
     INF.append(cells[8].find(text=True)) 
     FIN.append(cells[9].find(text=True)) 

答えて

0

私はなぜ、これはあなたが得る動作であることを確認していないが、あなたは必ず各セルにfind()を呼び出す必要はありません。セルの内容はtext属性から取得できます。

[u'\n\r\n\t\tUkraine', u'\n\r\n\t\tVinnytsia', 
u'\nVolyn', u'\n\r\n\t\tDnipropetrovsk', u'\nDonetsk', 
u'\n\r\n\t\tZhytomyr', u'\n\r\n\t\tTranscarpathean', 
u'\n\r\n\t\tZaporizhia', ...] 

(もちろん、\r\nがたくさんある、\tエッチその1:あなたは

NAM.append(cells[0].text) 

NAM.append(cells[0].find(text=True)) 

を交換した場合、これはNAMの値になりますstrip()文字列メソッドを呼び出すことで削除することができます:

NAM.append(cells[0].text.strip()) 

ここでは結果である:

[u'Ukraine', u'Vinnytsia', u'Volyn', u'Dnipropetrovsk', u'Donetsk', 
u'Zhytomyr', u'Transcarpathean', u'Zaporizhia', u'Ivano-Frankivsk', 
u'Kyiv', u'Kirovohrad', u'Luhansk', u'Lviv', u'Mykolaiv', u'Odesa', 
u'Poltava', u'Rivne', u'Sumy', u'Ternopil', u'Kharkiv', u'Kherson', 
u'Khmelnytsk', u'Cherkasy', u'Chernivtsi', u'Chernihiv', 
u'City of \r\n\t\tKyiv'] 
関連する問題