2017-06-06 74 views
0

我試圖webscrape使用beautifulsoup的angularjs網站。該網站是一個angularjs網站,完全由javascript生成。網站掃描一個angularjs網站

該網站是:https://sports.bovada.lv/baseball/mlb/pitcher-props-market-group

我想我可以只使用webdriver的戰略phantomjs。 以下是我有:

PHANTOMJS_PATH = './phantomjs.exe' 
bovadaURL = 'https://sports.bovada.lv/baseball/mlb/pitcher-props-market-group' 
driver = webdriver.PhantomJS(PHANTOMJS_PATH) 
driver.get(bovadaURL) 
driver.set_window_position(0, 0) 
driver.set_window_size(100000, 200000) 
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);") 
time.sleep(15) # wait to load 
# now print the response 
print(driver.page_source) 

然而,沒有得到期望的輸出..這輸出:

<html><head></head><body></body></html> 

在哪裏何去何從任何想法?用盡想法..

回答

0

您是否嘗試過要求?我只是嘗試了一個快速和骯髒的腳本,它得到了超過<html><head><body>標籤。

#!/usr/bin/python3 

import requests, bs4 

res = requests.get('https://sports.bovada.lv/baseball/mlb/pitcher-props-market-group') 
soup = bs4.BeautifulSoup(res.text,'html.parser') 

print(res.text) 

插入打印語句來測試反應,這是輸出:

<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"... more 
<!--[if IE]><![endif]--> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
<meta http-equiv="x-dns-prefetch-control" content="on">... more 
<meta name="theme-color" content="#ffffff"> 
<link href="https://sports.bovada.lv/base... more 
etc... much longer html stuff 

,並作爲BS4,似乎工作順利爲好,如果我只是做一些快似尋找所有的鏈接(它們使用<link>標籤),那麼這:

#!/usr/bin/python3 

import requests, bs4 

res = requests.get('https://sports.bovada.lv/baseball/mlb/pitcher-props-market-group') 

soup = bs4.BeautifulSoup(res.text,'html.parser') 
links = soup.find_all('link') 

for link in links: 
    print(link.attrs['href']) 

產生以下輸出:

>python test.py 
//cdn13-a.imagestore.lv 
//cdn13-b.imagestore.lv 
//cdn13-c.imagestore.lv 
https://cdn13-a.imagestore.lv/sites/site10/themes/websites_bovada_theme/favicon.ico 
https://cdn13-a.imagestore.lv/static/site10/favicons/apple-icon-57x57.png 
https://cdn13-b.imagestore.lv/static/site10/favicons/apple-icon-60x60.png 
https://cdn13-b.imagestore.lv/static/site10/favicons/apple-icon-72x72.png 
https://cdn13-c.imagestore.lv/static/site10/favicons/apple-icon-76x76.png 
https://cdn13-b.imagestore.lv/static/site10/favicons/apple-icon-114x114.png 
etc... 

這有幫助嗎?

編輯: 以前,你不能使用無頭瀏覽器。所以你需要使用像Firefox一樣的東西。但首先(如果你還沒有這樣做的話),你需要得到geckodriver,在這裏找到:

https://github.com/mozilla/geckodriver/releases

你需要添加到您的PATH。 一旦這樣做,你應該能夠在該網站上運行硒,並像平常一樣再次通過bs4。

enter image description here

+0

想我的問題可能是我的連接沒有加載一樣快,我需要它 – skipper

+0

以爲是我的USSE,有時我能夠加載頁面..有時候我不能.. – skipper

+0

它必須是一個速度的東西 – skipper