刮桌子时我一无所获

时间:2018-08-29 15:10:24

标签: python web-scraping

所以我想从这里提取数字45.5:https://www.myscore.com.ua/match/I9pSZU2I/#odds-comparison;over-under;1st-qrt

但是当我尝试查找表时,我什么也没得到。这是我的代码:

import requests
from bs4 import BeautifulSoup
url = 'https://www.myscore.com.ua/match/I9pSZU2I/#odds-comparison;over-under;1st-qrt'
headers = {'User-Agent': 'Mozilla/5.0 (X11; Linux armv7l) AppleWebKit/537.36 (KHTML, like Gecko) Raspbian Chromium/65.0.3325.181 Chrome/65.0.3325.181 Safari/537.36'}
response = requests.get(url, headers=headers)

soup = BeautifulSoup(response.content, 'html.parser')
text = soup.find_all('table', class_ = 'odds sortable')
print(text)

有人可以帮助我提取数字并将其值存储到变量中吗?

1 个答案:

答案 0 :(得分:0)

您可以尝试通过不创建Selenium来执行此操作,方法是重新创建加载表的动态请求。

在页面的网络选项卡中,我看到了这个XMLHTTPRequest:https://d.myscore.com.ua/x/feed/d_od_I9pSZU2I_ru_1_eu

尝试重现与请求相同的参数。

访问“网络”选项卡:单击右键->检查元素->“网络”选项卡->选择XHR并找到第二个请求。

enter image description here

最终代码如下:

headers = {'x-fsign' : 'SW9D1eZo'}

page = 
requests.get('https://d.myscore.com.ua/x/feed/d_od_I9pSZU2I_ru_1_eu', 
headers=headers)

您应根据浏览器/ ip检查x = fisgn值是否不同。