【发布时间】:2023-01-21 09:10:04
【问题描述】:
谦虚的问候,欢迎任何愿意在这里度过时光的人。我将自我介绍为数据科学和 Python 的非常新的学生。这个线程旨在从能够在 python 领域内更深入理解的更幸运的头脑中获得洞察力。
如我们所见,在页面检查中可以很容易地找到每一行本身的值。但似乎他们都在使用相同的类名。至于现在,恐怕我什至找不到合适的关键字来搜索谷歌中的任何工作方法。
这些是我试过的代码。他们不工作和令人尴尬,但我无论如何都必须展示它。我尝试通过添加 .content、.text、find、find_all 来摆弄,但我知道我的失败在于更深的基本核心。
from bs4 import BeautifulSoup
import requests
from csv import writer
import pandas as pd
url= 'https://m4.mobilelegends.com/stats'
page = requests.get(url)
soup = BeautifulSoup(page.text, 'html.parser')
lists = soup.find('div', class_="m4-team-stats-scroll")
with open('m4stats_team.csv', 'w', encoding='utf8', newline='') as f:
thewriter = writer(f)
header = ['Team', 'Win Rate', 'Average KDA', 'Average Kills', 'average Deaths', 'Average Assists', 'Average Game Time', 'Average Lord Kills', 'Average Tortoise Kills', 'Average Towers Destroy', 'First Blood Rate', 'Hero Pool']
thewriter.writerow(header)
for list in lists:
team = list.find_all('p', class_="h3 pl-5 whitespace-nowrap hidden xl:block")
awr = list.find_all('p', class_="h4")
akda = list.find('p', class_="h4").text
akill = list.find('p', class_="h4").text
adeath = list.find('p', class_="h4").text
aassist = list.find('p', class_="h4").text
atime = list.find('p', class_="h4").text
aalord = list.find('p', class_="h4").text
atortoise = list.find('p', class_="h4").text
atower = list.find('p', class_="h4").text
firstblood = list.find('p', class_="h4").text
hrpool = list.find('p', class_="h4").text
info = [team, awr, akda, akill, adeath, aassist, atime, aalord, atortoise, atower, firstblood, hrpool]
thewriter.writerow(info)
pd.read_csv('m4stats_team.csv').head()
我在期待什么: 任何一种洞察力。无论是线索、关键字、代码 sn-p,我都非常感谢并非常感谢您提供的任何指导。我不是要求以某种方式获得完整的报废 CSV,因为我可以手动完成。在这一点上,我希望能够自己进行基本的网络抓取。
【问题讨论】:
-
现在只需将此链接中的 1674043547673 更改为时间戳 m4.mobilelegends.com/data/version/240/teams.csv?v=1674043547673
-
抱歉。你是如何设法找到这个数据源的?
-
chrome 开发工具,网络选项卡
-
哦,我知道你是怎么到那里的。在我的浏览器中,我还可以使用检查元素并从网络选项卡中找到任何相关的 csv。对于这一见解,我非常感谢您,先生。
标签: python web-scraping beautifulsoup python-requests-html