2017-03-05 38 views
0

晚上好。 我想要使用請求和BeautifulSoup一些html元素。使用請求的內容作爲解析器的參數,我想在股票價格歷史網站上獲得最終報價。該信息存儲在此鏈接的「引用表結果_val」類中(https://iqoption.com/pt/historical-financial-quotes?active_id=1&tz_offset=-180&date=2017-3-4-0-0)。但是,腳本正在返回一個None對象。你知道我做錯了什麼嗎?使用請求和BeautifulSoup獲取HTML元素

代碼:

from bs4 import BeautifulSoup 
import requests 

r = requests.get('https://iqoption.com/pt/historical-financial-quotes?active_id=1&tz_offset=-180&date=2017-3-4-0-0') 
soup = BeautifulSoup(r.content, 'html5lib') 
final_quotation = soup.find(class_='quotes-table-result__val') 

回答

0

注意,當你搜索一個給定的歷史本網站請求GET方法,以及請求後完成對錶中的數據被加載。

您將不得不模擬請求並解析結果。對於我所見的請求方法將返回一個json對象。

請注意請求中的日期參數。你會有你想要的日期。

瞭解requestsjson parsinghere的更多信息。

下面是一個例子代碼:

import requests 

r = requests.get('https://eu.iqoption.com/api/quote/history/v1/expirations?active_id=1&tz_offset=-180&date=2017-3-4-0-0') 
JSON_OBJECT = r.json() 

for datetime_object in JSON_OBJECT["result"]["expirations"]: 
    Bid = datetime_object["bid"] 
    Ask = datetime_object["ask"] 
    Value = datetime_object["value"] 

    print ("DateTime: %s - Bid (%s) - Ask (%s) - Value (%s)" % (datetime_object["datetime"], Bid, Ask, Value)) 

,其輸出:

日期時間:2017年3月4日00:00:00 - 出價(1.06241) - 向(1.06224) - 值(1.062325)

日期時間:2017年3月4日00:00:01 - 競價(1.06241) - ASK(1.06224) - 值(1.062325)

日期時間:2017年3月4日00:00:02 - 投標(1 0.06241) - ASK(1.06224) - 值(1.062325)

...

+0

真棒!謝謝你,兄弟! :D –

+0

BeautifulSoup有沒有辦法做到這一點? –

+0

Beautifulsoup不準備處理json。 – Zroq