2017-06-15 13 views
0

をクリックした後、私は次のサイトからテーブルをこすりしようとしている表を取得します。ボタンがBeautifulSoupのPython

http://www.boursakuwait.com.kw/Stock/StkHData.aspx?STK=103 

これからとに入った後

ap = argparse.ArgumentParser() 

    ap.add_argument("--id",required = True, help = "enter the id") 
    ap.add_argument("--from",required = True, help = "From date") 
    ap.add_argument("--to",required = True, help = "To date") 

    args = vars(ap.parse_args()) 

    id_num = args["id"] 
    from_date = args["from"] 
    to_date = args["to"] 

    browser = webdriver.Firefox() 
    url1 = "http://www.boursakuwait.com.kw/Stock/StkHData.aspx?STK=" + id_num 

    browser.get(url1) 

    elem = browser.find_element_by_id("ContentMatter_txtFrom") 
    elem.send_keys(from_date) 
    elem = browser.find_element_by_id("ContentMatter_txtTo") 
    elem.send_keys(to_date) 
    elem = browser.find_element_by_id("ContentMatter_Button1").click() 

    time.sleep(5) 

    parsed = requests.get(url1) 

    soup = BeautifulSoup(parsed.text,'html.parser') 
    tble = soup.findAll("table",attrs={"class":"hoverTable"}) 

    print(tble) 

を使用しています次のコードであります日付、およびボタンのクリックをシミュレートすると、私の目標は、結果の表を取得します。ただし、コードはテーブルを認識しません。私は(行と列をループする)のコードの他の形式を試しましたが、どちらも機能しませんでした。

ホバーテーブルであるため、私の推測では、URLは更新されないと考えられます。この場合、テーブルを取得する方法はありますか?

P.S:id_numは、会社のそれぞれの株を表示する整数、101,102,103などです。ペーストされたリンクにはID 103が付いています。STK = 103

答えて

0

ブラウザオブジェクトを使用して解決できました。ブラウザオブジェクトが間で、使用を要求するのではなく、最初からURLの状態を実施するので

parsed = browser.page_source 
    soup = BeautifulSoup(parsed,'html.parser') 

parsed = requests.get(url1) 
    soup = BeautifulSoup(parsed.text,'html.parser') 

を交換します。

テーブルを取得する簡単な方法

は、元のコードは、同様に動作マーシー

tble = soup.select("table.hoverTable") 

によって示唆されました。

+0

あなたが許可されているときにこれを返信として受け入れることを忘れないでください。ありがとう! – JeffC

1

次のコードを試してみてください。

soup.select("table.hoverTable") //to select the table 
+0

これも同様に機能しました。しかし、実際の問題は、要求にあった。私は "browser.page_source"を使って解決できました。ブラウザのオブジェクトは更新されたテーブルを保持していたので、リクエストは実行しませんでした。 –