2017-05-19 76 views
2

我一直停留在這一段時間......我試圖從該站點刮玩家的名字和投影:https://www.fantasysportsco.com/Projections/Sport/MLB/Site/DraftKings/PID/793BS4刮隱藏的內容

腳本是通過由過去只是通過去要循環所有的PID在一個範圍內,但那不是問題。主要的問題是,當我檢查元素,我覺得值存儲在該類別中:

<div class="salarybox expanded"... 

它位於我projectionsView名單的第五位。

刮板發現了projectionView類很好,但無法找到其中的任何東西。

當我轉到查看看來這個內容只是沒有在它exsist該網站的實際HTML ..

<div id="salData" class="projectionsView"> 
    <!-- Fill in with Salary Data --> 
</div> 

我超級新的拼搶,並已順利地刮取一切我需要的我的項目不是這個該死的網站......我想這可能是因爲我必須註冊該網站?但無論哪種方式的信息是可見的,而無需登錄,所以我想我不需要使用硒,即使我這樣做,也不會找到它,我不認爲。

無論如何,這是我到目前爲止的代碼顯然返回一個空白列表。

from bs4 import BeautifulSoup as soup 
from urllib.request import urlopen as uReq 
import pandas as pd 
import os 


url = "https://www.fantasysportsco.com/Projections/Sport/MLB/Site/DraftKings/PID/793" 

uClient = uReq(url) 
page_read = uClient.read() 
uClient.close() 

page_soup = soup(page_read, "html.parser") 
salarybox = page_soup.findAll("div",{"class":"projectionsView"}) 
print(salarybox[4].findAll("div",{"class":"salarybox expanded"})) 

任何想法將不勝感激!

該腳本的全部想法是在每個頁面上找到每個「salarybox expanded」類的ppText。我只想知道如何找到這些元素。也許是一個不同的解析器?

回答

1

根據你的url頁面,<div id="salData" class="projectionsView">被javascript重寫,但urllib.request會在運行你的回調之前得到整個響應,這意味着javascript生成的內容將不會在響應中。因此,格將是空的:

<div id="salData" class="projectionsView"> 
    <!-- Fill in with Salary Data --> 
</div> 

你更好地seleniumsplash嘗試將這類動態網頁的工作。

順便說一句,你得到正確的響應後,您可以通過id選擇div,這將更加明確:

salarybox = page_soup.find("div",{"id":"salData"}) 
+0

嘿感謝您的答覆!欣賞它。我希望我不必硒,但我認爲它會沒事的。午餐後我會寫一些基本的硒代碼,看看我能否得到迴應。從來沒有聽說過濺tho?也會考慮到這一點,以及 –

+1

上帝的母親。硒很容易......不知道爲什麼我沒有在問之前嘗試它。無論如何感謝您的建議!我明白了:) –

+0

@StuKruske COOL,CHEERS :) –