2016-05-02 4 views
0

外国人旅行者を募集しています(リンクは以下のコードに含まれています)。 999,999以上の数字は低い数字とは異なるクラスの一部であるため、2つの別々のXpathを使用してすべてのデータを取得する必要がありました。 データを正常に印刷できますが、なんらかの理由で 'bignum'クラスの数値の前後に余分なスペースがあります。誰も私のコード内でこれらのスペースを取り除く方法を知っていますか? Excelでcsvファイルをクリーニングすることもできますが、時間がかかります。 データの空のスペースの中には、実際にそこに存在すると思われるものがあります。それらの国には、対応する年の記録データがありません。スクラップしたデータでこれらの不要な空き領域を取り除くにはどうすればよいですか?

# import python packages 
import requests 
from lxml import html 
import csv 
import pandas as pd 
import re 

r = requests.get('http://data.worldbank.org/indicator/ST.INT.ARVL/countries/1W?page=4&order=wbapi_data_value_2014%20wbapi_data_value%20wbapi_data_value-last&sort=asc&display=default') 
data = html.fromstring(r.text) 

Data1995 = [] 
Data_1995 = data.xpath("//tr/td[2][@class='views-field views-field-wbapi-data-value-1995 wbapi-data-value wbapi-data-value-first']/text()|//span[@class='bignum']/text()") 

for i in Data_1995: 
    i = i.encode('ascii','ignore').strip() 
    i = re.sub('[()]', '', i) # removing() 
    Data1995.append(i) 

Data1995 

答えて

0

2つの別々のXPathを必要とせず、すべてのクラスをチェックします。

Data1995 = [i.text_content().strip() 
      for i in data.xpath("//td[contains(@class, 'wbapi-data-value')]")] 
+0

これは別のXPathですが、不要なスペースが残っています。 –

+0

@SamBええ、あなたはリストの空のアイテムを意味しますか?確かに、これらは旅行者の価値を持たない国々です。 – alecxe

+0

いいえ、1,000,000以上の数字の前後に空白が表示されます。データは、スプレッドシートに正しく並べて表示されます。 –

関連する問題