我正在创建一个网页刮板,它可以让我得到即将到来的威廉山UFC战斗的几率。我用的是漂亮的汤,但还能够成功地获取所需的数据。(https://sports.williamhill.com/betting/en-gb/ufc)
我需要战士的名字和胜算。在
我尝试了各种方法来获取数据,尝试刮取不同的标签等等,但是什么都没有发生。在
def scrape_data():
data = requests.get("https://sports.williamhill.com/betting/en-
gb/ufc")
soup = BeautifulSoup(data.text, 'html.parser')
links = soup.find_all('a',{'class': 'btmarket__name btmarket__name--
featured'}, href=True)
for link in links:
links.append(link.get('href'))
for link in links:
print(f"Now currently scraping link: {link}")
data = requests.get(link)
soup = BeautifulSoup(data.text, 'html.parser')
time.sleep(1)
fighters = soup.find_all('p', {'class': "btmarket__name"})
c = fighters[0].text.strip()
d = fighters[1].text.strip()
f1.append(c)
f2.append(d)
odds = soup.find_all('span', {'class': "betbutton_odds"})
a = odds[0].text.strip()
b = odds[1].text.strip()
f1_odds.append(a)
f2_odds.append(b)
return None
我希望它被导出到一个CSV文件。我目前正在使用Morph.io
来托管和运行scraper,但它没有返回任何内容。在
如果正确,它将输出:
每一场战斗。
任何帮助都将不胜感激。在
返回的html具有不同的属性和值。你需要检查一下反应。在
对于写出来的csv,你需要在赔率前面加上“'”,以防止赔率被当作分数或日期处理。请参阅下面代码中注释掉的备选方案。在
相关问题 更多 >
编程相关推荐