2016-05-15 11 views
-3

さて、ヤフーファイナンスを削るプログラムを作っています。私はある株式の過去の価格が欲しい。私はそれをExcelスプレッドシートに書きたいと思っています。それはそれが仮定されている方法ですべてをやっていますが、それは私に全ページのすべてのデータを与えます!テーブルのデータだけが必要です。ありがとう。ファイルへのデータのテーブルを書き出すにはこのテーブルをより効率的にスクラップするにはどうすればよいですか?

soup = make_soup("https://finance.yahoo.com/q/hp?s=USO+Historical+Prices") 
table = [[cell.text for row in soup.findAll('tr')] for cell in soup.findAll('td')] 

:データのテーブルを取得するには

import urllib 
import urllib.request 
from bs4 import BeautifulSoup 
import os 
import requests 

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

playerdatasaved="" 
soup = make_soup("https://finance.yahoo.com/q/hp?s=USO+Historical+Prices") 
for record in soup.findAll('tr'): 
playerdata="" 
for data in record.findAll('td'): 
    playerdata=playerdata+","+data.text 
if len(playerdata)!=0: 
    playerdatasaved = playerdatasaved + "\n" + playerdata[1:] 

header="Open,Close,High,Low" 
file = open(os.path.expanduser("Uso.csv"),"wb") 
file.write(bytes(header, encoding="ascii",errors='ignore')) 
file.write(bytes(playerdatasaved, encoding="ascii",errors='ignore')) 

print(playerdatasaved) 
+2

あなたは[こちら]この質問をしませんでした(HTTP ://stackoverflow.com/questions/37240961/how-do-i-scrape-just-the-table)数時間前に別のアカウントにログインしましたか? Stack Overflowでは複数のアカウントを作成して同じ質問を繰り返すことは認められません。 – miradulo

+0

質問に何か問題があった場合は、代わりに編集することができます(質問の末尾にボタンがあります) – amiller27

+0

私はしましたが、答えられていませんでした。私は誰もがコーディングの神であると理解し、私のレベルに下がるのが気になりますが、本当にすべての時間がありません。次の人に答えるために、私は大騒ぎがリンクだと思う。このリンクを使ってみてください: – Jake

答えて

0

import csv 

with open("output.csv", "wb") as f: 
    writer = csv.writer(f) 
    writer.writerows(table) 
関連する問題