NBA球员基础信息selenium

from selenium.webdriver import ActionChains
from selenium import webdriver
import xlwt
import pandas as pd
import time
import csv


def nbadata():
    df = xlwt.Workbook()
    sheet1 = df.add_sheet('nbadata', cell_overwrite_ok=True)
    rowsTitle = [u'中文名', u'英文名', u'球员号码', u'位置', u'身高', u'体重', u'年龄', u'球龄']
    for i in range(len(rowsTitle)):
        sheet1.write(0, i, rowsTitle[i])

    for i in range(1, 31):
        browser = webdriver.Chrome(executable_path='D:\wen\chromedriver.exe')
        browser.maximize_window()
        time.sleep(3)
        url = "https://nba.stats.qq.com/player/list.htm#teamId={}".format(i)
        browser.get(url)

        # 获取球员中文名
        chinese_names = browser.find_elements_by_xpath('//div[@class="players"]//tr[@class="show"]/td[2]/a')
        chinese_names_list = [i.text for i in chinese_names]

        # 获取球员英文名
        english_names = browser.find_elements_by_xpath('//div[@class="players"]//tr[@class="show"]/td[3]/a')
        english_names_list = [i.get_attribute('title') for i in english_names]  # 获取属性

        # 获取球员号码
        numbers = browser.find_elements_by_xpath('//div[@class="players"]//tr[@class="show"]/td[4]')
        numbers_list = [i.text for i in numbers]

        # 获取球员位置
        locations = browser.find_elements_by_xpath('//div[@class="players"]//tr[@class="show"]/td[5]')
        locations_list = [i.text for i in locations]

        # 获取球员身高
        heights = browser.find_elements_by_xpath('//div[@class="players"]//tr[@class="show"]/td[6]')
        heights_list = [i.text for i in heights]

        # 获取球员体重
        weights = browser.find_elements_by_xpath('//div[@class="players"]//tr[@class="show"]/td[7]')
        weights_list = [i.text for i in weights]

        # 获取球员年龄
        ages = browser.find_elements_by_xpath('//div[@class="players"]//tr[@class="show"]/td[8]')
        ages_list = [i.text for i in ages]

        # 获取球员球龄
        qiu_lings = browser.find_elements_by_xpath('//div[@class="players"]//tr[@class="show"]/td[9]')
        qiu_lings_list = [i.text for i in qiu_lings]

        for j in range(len(chinese_names_list)):
            sheet1.write(i * len(chinese_names_list) + j, 0, chinese_names_list[j])
            sheet1.write(i * len(chinese_names_list) + j, 1, english_names_list[j])
            sheet1.write(i * len(chinese_names_list) + j, 2, numbers_list[j])
            sheet1.write(i * len(chinese_names_list) + j, 3, locations_list[j])
            sheet1.write(i * len(chinese_names_list) + j, 4, heights_list[j])
            sheet1.write(i * len(chinese_names_list) + j, 5, weights_list[j])
            sheet1.write(i * len(chinese_names_list) + j, 6, ages_list[j])
            sheet1.write(i * len(chinese_names_list) + j, 7, qiu_lings_list[j])
            df.save('F:/NBA.xls')
        print('有{}'.format(i)+'个球队已写入')
        browser.close()

nba球员基本信息的写入,这个是有参考另一位朋友的资源,哈哈,能白嫖就尽量白嫖,不过这个很简单,写起来也很容易,毕竟人家把信息放在这里让你取。
中间的等待换为隐式等待更好,但是我懒得去找那几行代码了,有需要的朋友可以去看我之前发的那几个cnki的文章,有那样写。
写入mysql,txt等操作大同小异,可以试着去自己写一下。
在这里插入图片描述
这是样品,可能中间有部分空行,这是写入时的参数没调好,自己删了吧,我也懒得再写了。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值