2017-02-12 26 views
0

這是我在StackOverflow中的第一個問題,我非常感謝您的幫助!我試圖抓取表數據並使用本頁的NUFORC中的python 2.7和R轉換爲csv文件:http://www.nuforc.org/webreports/ndxl.html。我看過幾十個教程,並試圖跟隨,但沒有人爲這個實例工作。我檢查了美麗的文件,但我沒有找到某物來尋找路線。看起來,即使讀取剪貼板命令不起作用(?)Python - 美麗的湯 - 檢索表格數據

最有希望的方法如下。這是我儘可能去的,因爲我無法在此頁面上覆制教師筆記。

import urllib2 
from urllib2 import urlopen 
from bs4 import BeautifulSoup 
url= "http://www.nuforc.org/webreports/ndxl.html" 

def make_soup(url): 
    thepage = urllib2.urlopen(url) 
    soupdata = BeautifulSoup(thepage, "html.parser") 
    return soupdata 

soup = make_soup ("http://www.nuforc.org/webreports/ndxl.html") 

for record in soup.findAll('tr'): 
    for data in record.findAll('td'): 
     print (data.text) 

儘管現在至少我可以打印數據,但我不知道如何繼續將數據提取到更有用的.csv文件中。

預先感謝您的幫助:)

回答

0

使用csv.writer您可以直接將數據寫入到CSV文件中您嵌套的for循環。對於行中的每個行值,您將其存儲在一個數組中,然後使用write_row將該數組寫入該行。確保將數組初始化爲每行都爲空,否則可能會一次又一次地添加到前一個數組中。

+0

太好了,謝謝你我會檢查那個命令並且會更新!我希望在.csv之前將網絡表數據保存到Python中的數據框中。有關如何進行的任何建議?謝謝! – Dim

+0

你可以使用[Panda dataframes](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.html),或者如果你想簡單一點,你可以做一組數組。 row_list = list()\ n 用於表中的行\ n columns = list()\ n 用於行中的項\ n \ t columns.append(item)\ n row_list.append(columns) –