#模块导入 from selenium import webdriver from time import sleep from lxml import etree import xlwt import openpyxl #初始化 ##浏览器部分 bro = webdriver.Chrome() bro.get("https://china.nba.cn/players/stats/#!/stephen_curry") page_text = bro.page_source sleep(5) bro.quit() tree=etree.HTML(page_text) ##表格数据部分 file=xlwt.Workbook() sheet1 = file.add_sheet('sheet1',cell_overwrite_ok=True) line_per=[] #数据爬取函数准备 def score_record(x): tree_line=tree.xpath(x) line_0=[] for i in tree_line: tree_line_word=i.xpath('.//text()') for i in tree_line_word: if i.strip(): line_0.append(i.strip()) line_true=[line_0[0],line_0[18],line_0[19],line_0[20],line_0[21],line_0[22],line_0[23]] line_per.append(line_true) #爬取数据 a='/html/body/div[5]/div/div/div/div[2]/div[2]/section/div/div[2]/div[2]/div[1]/div[1]/div[3]/nba-stat-table/div/div[1]/table/thead/tr' score_record(a) for i in range(1,14): webside='/html/body/div[5]/div/div/div/div[2]/div[2]/section/div/div[2]/div[2]/div[1]/div[1]/div[3]/nba-stat-table/div/div[1]/table/tbody/tr[{}]'.format(i) score_record(webside) #保存数据 file = xlwt.Workbook() sheet1 = file.add_sheet('sheet1',cell_overwrite_ok=True) for j in range(0,14): for i in range(0,7): sheet1.write(j,i,line_per[j][i]) file.save('python结课程序.xls') #分析数据 sheet1.write(0,7,"两分出手") sheet1.write(0,8,"两分命中") wb = openpyxl.load_workbook('python结课程序.xls') sheet = wb['sheet1'] for i in range(2, 15): c_val = sheet.cell(row=i, column=3).value e_val = sheet.cell(row=i, column=5).value g_val = sheet.cell(row=i, column=7).value result = c_val - e_val - g_val sheet.cell(row=i, column=8).value = result for i in range(2, 15): b_val = sheet.cell(row=i, column=2).value d_val = sheet.cell(row=i, column=4).value f_val = sheet.cell(row=i, column=6).value result = b_val - d_val - f_val sheet.cell(row=i, column=9).value = result wb.save('python结课程序.xls')
时间: 2024-04-02 17:34:32 浏览: 30
这是一个使用 Python 爬取 NBA 球员数据并进行简单分析的程序。其中使用了 Selenium、lxml、xlwt 和 openpyxl 等模块,主要流程为:
1. 使用 Selenium 模拟浏览器访问 NBA 官网的球员数据页面并获取页面源代码。
2. 使用 lxml 对页面源代码进行解析,提取出需要的表格数据。
3. 将数据保存到一个二维数组中。
4. 使用 xlwt 将数据写入 Excel 文件中。
5. 使用 openpyxl 读取 Excel 文件并对数据进行简单分析,计算出两分出手数和两分命中数,并将结果写入 Excel 文件中。
该程序的功能比较简单,但是涉及到了多个 Python 库的使用,可以作为初学者学习 Python 爬虫和数据分析的一个参考。
相关问题
from selenium import webdriver # Chrome浏览器 driver = webdriver.Chrome() 可以指定浏览器路径吗
可以指定Chrome浏览器的路径。在创建webdriver.Chrome()对象时,可以通过传递executable_path参数来指定Chrome浏览器的路径。具体代码如下:
```python
from selenium import webdriver
# 指定Chrome浏览器路径
chrome_path = "/path/to/chrome"
driver = webdriver.Chrome(executable_path=chrome_path)
```
请注意,`/path/to/chrome`应该替换为你实际的Chrome浏览器可执行文件的路径。
from selenium import webdriver from selenium.webdriver.edge.webdriver import WebDriver server = WebDriver() driver = webdriver.Edge()
这段代码使用了Selenium库来控制浏览器进行自动化测试。其中,from selenium import webdriver是导入Selenium库中的webdriver模块,webdriver模块提供了各种浏览器的驱动程序,可以通过这些驱动程序来控制浏览器。而from selenium.webdriver.edge.webdriver import WebDriver则是导入了Edge浏览器的驱动程序,用于控制Edge浏览器。接下来,server = WebDriver()创建了一个Edge浏览器的WebDriver实例,而driver = webdriver.Edge()则是创建了一个Edge浏览器的WebDriver实例,两者的效果是一样的。