如何在我的抓取数据中摆脱这些不需要的空白空间?

时间:2016-05-02 14:59:07

标签: python xpath web-scraping

我正在向外国搜集旅客人数(链接包含在下面的代码中)。因为999,999以上的数字是不同类别的一部分而不是较低的数字,我不得不使用两个单独的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

1 个答案:

答案 0 :(得分:0)

您不需要2个单独的XPath并检查所有类。保持简单:

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