Python抓取类更改的深层嵌套div

时间:2018-05-24 16:35:38

标签: python web-scraping beautifulsoup

我对python有点新,并且在项目的第一部分工作,我需要在FanDuel页面上获取链接,并且我一直在旋转我的轮胎试图获得' HREF&#39 ;.

以下是Inspect Element显示的内容: what i'm trying to get to is highlighted

上面突出显示了我想要达到的目的。

我看到它似乎是父母,但是当你走到树下时,用字母列出的类(即 - " _a _ch _al _nr _dq _ns _nt _nu")每天都在变化

我注意到的是' href'我需要的是一个常数" data-test-id"这不会改变,所以我试图用它作为我的方式找到我需要的东西,但它似乎没有工作。

我不确定我需要向下钻多远才能得到我需要的东西,或者我的代码完全关闭了。感谢您的帮助!

import requests
from bs4 import BeautifulSoup

url = "https://www.fanduel.com/contests/mlb/96"

#authentication might not be necessary, it was a test, still getting the same results
site = requests.get(url, cookies={'X-Auth-Token':'MY TOKEN IS HERE'})

soup = BeautifulSoup(site.content, 'lxml')

game = soup.find_all('a', {'data-test-id':"ContestCardEnterLink"})

#If i use this, i get an error
game = soup.find_all('a', {'data-test-id':"ContestCardEnterLink"})[('href')]


print(game)

1 个答案:

答案 0 :(得分:0)

HTML是由javascript构建的,为了检查这个,而不是使用inspect元素,使用view source-page并查看HTML是否已经在那里构建(这是你在做request.get()时得到的html ),我已经检查过这个,这是真的。要解决这个问题,您必须使用Selenium在页面上呈现javascript,然后在从DOM构造元素之后,您可以通过selenium获取源页面代码。