2017-12-28 5 views
-1

私は、テーブルと1つの数字をコピーするためのWebページをスクラップして(両方のxpathを使って)、その情報をメールで送信する基本的なpythonスクリプトを持っています。テーブルをセレンでもっときれいにする

しかし、スクラップ中にテーブル行が失われるため、テーブルはユーザーフレンドリーなフォーマットにはなりません。番号で番号をスクラップして最初からテーブルを作成することなく、テーブルをよりきれいにする簡単な方法はありますか?

電子メールをhtmlとして送信しても、データはすべて混合されます。テキストとして読むことができます(下にチェック)が、とにかくそれは非常にユーザーフレンドリーではありません。ありがとう。

私のコードは次のとおりです。

from pyvirtualdisplay import Display 
from selenium import webdriver 
from selenium.common.exceptions import NoSuchElementException 
import time 

with Display(): 
    browser = webdriver.Firefox() 

    try: 
     url = 'https://pt.investing.com/commodities/brent-oil-historical-data' 
     browser.get(url) 
     time.sleep(5) 
     brent_data = browser.find_element_by_xpath("//*[@id='results_box']").text 
     #print (brent_data) 
     last_price = browser.find_element_by_xpath("//*[@id='last_last']").text 

    except NoSuchElementException: 
     brent_data = "no data" 
     last_price = "no data" 
    finally: 
     browser.quit() 


import requests 
from datetime import datetime, timedelta 

today = datetime.now() 
today = today.strftime('%d.%m.%Y') 


text_send = """ 
======================================== 
%s 

%s 

======================================== 
""" % (last_price, brent_data) 

出力は次のとおりです。

あなたがサイトの利用規約、以下のデータをコピーすることが許可されている、あなたが得ることができるかもしれと仮定すると
66,17 

Data Último Abertura Alta Baixa Vol. Var. % 
28.12.2017 66,17 65,97 66,33 65,97 - 0,38% 
27.12.2017 65,92 66,20 66,38 65,48 - -1,64% 
26.12.2017 67,02 65,20 67,10 65,00 74,25K 2,71% 
22.12.2017 65,25 64,63 65,28 64,38 110,42K 0,54% 
21.12.2017 64,90 64,49 64,93 64,20 155,42K 0,53% 
20.12.2017 64,56 63,83 64,60 63,67 222,73K 1,19% 
19.12.2017 63,80 63,41 63,91 63,30 213,19K 0,62% 
18.12.2017 63,41 63,36 63,91 63,00 234,62K 0,28% 
15.12.2017 63,23 63,39 63,68 63,08 213,00K -0,13% 
14.12.2017 63,31 62,81 63,50 62,01 277,67K 1,39% 
13.12.2017 62,44 63,80 64,32 62,36 354,37K -1,42% 
12.12.2017 63,34 64,66 65,83 63,07 508,99K -2,09% 
11.12.2017 64,69 63,29 64,93 62,99 488,01K 2,03% 
08.12.2017 63,40 62,08 63,64 62,01 362,43K 1,93% 
07.12.2017 62,20 61,30 62,26 61,15 238,96K 1,60% 
06.12.2017 61,22 62,64 62,93 61,13 314,26K -2,61% 
05.12.2017 62,86 62,45 63,15 62,12 219,34K 0,66% 
04.12.2017 62,45 63,50 63,68 62,31 250,52K -2,01% 
01.12.2017 63,73 62,74 64,32 62,59 308,15K 0,25% 
30.11.2017 63,57 63,28 64,21 63,21 26,21K 0,73% 
29.11.2017 63,11 63,30 64,07 62,50 178,20K -0,79% 
28.11.2017 63,61 63,78 63,89 63,10 186,93K -0,36% 
Alta: 67,10 Baixa: 61,13 Diferença: 5,97 Média: 63,83 Var. %: 3,65 

答えて

0

テーブルそのもの。 "table"要素へのXpathを使用してから

element.get_attribute('outerHTML') 

出力をhtml形式にします。

また、RSSフィードの1つが役に立つかもしれません。そして、Pythonパッケージを使ってそのデータを取得してください。 (私は自分自身を使用していないので、私は何もお勧めできませんでした)。

関連する問題