NBA球员常规赛信息selenium抓取

def nbadata1():
    df = xlwt.Workbook()
    sheet1 = df.add_sheet('nbadata', cell_overwrite_ok=True)
    rowsTitle = [u"排名", u"球员", u"球队", u"得分", u"出手数", u"命中率", u"3分出手",
                 u"3分命中率", u"罚球次数", u"罚球命中率", u"篮板", u"前场篮板", u"后场篮板", u"助攻",
                 u"抢断", u"盖帽", u"失误", u"犯规", u"场次", u"上场时间"]
    for i in range(len(rowsTitle)):
        sheet1.write(0, i, rowsTitle[i])

    browser = webdriver.Chrome(executable_path='D:\wen\chromedriver.exe')
    browser.maximize_window()
    time.sleep(3)
    url = "https://nba.stats.qq.com/stats/detail/?order=defen&type=player"
    browser.get(url)
    input4_players = browser.find_element_by_class_name('content')
    input4_players2 = input4_players.find_elements_by_css_selector('li')
    page = 0
    for j in range(len(input4_players2)):
        paiming = input4_players2[j].find_element_by_class_name('paiming').text
        qiuyuan = input4_players2[j].find_element_by_class_name('qiuyuan').text
        qiudui = input4_players2[j].find_element_by_class_name('qiudui').text
        defen = input4_players2[j].find_element_by_class_name('defen').text
        chushou = input4_players2[j].find_element_by_class_name('chushou').text
        mingzhong = input4_players2[j].find_element_by_class_name('mingzhong').text
        chushou3 = input4_players2[j].find_element_by_class_name('chushou3').text
        mingzhong3 = input4_players2[j].find_element_by_class_name('mingzhong3').text
        faci = input4_players2[j].find_element_by_class_name('faci').text
        falv = input4_players2[j].find_element_by_class_name('falv').text
        lanban = input4_players2[j].find_element_by_class_name('lanban').text
        qlanban = input4_players2[j].find_element_by_class_name('qlanban').text
        hlanban = input4_players2[j].find_element_by_class_name('hlanban').text
        zhugong = input4_players2[j].find_element_by_class_name('zhugong').text
        qiangduan = input4_players2[j].find_element_by_class_name('qiangduan').text
        gaimao = input4_players2[j].find_element_by_class_name('gaimao').text
        shiwu = input4_players2[j].find_element_by_class_name('shiwu').text
        fangui = input4_players2[j].find_element_by_class_name('fangui').text
        changci = input4_players2[j].find_element_by_class_name('changci').text
        shangchang = input4_players2[j].find_element_by_class_name('shangchang').text
        sheet1.write(page * len(input4_players2) + j, 0, paiming)
        sheet1.write(page * len(input4_players2) + j, 1, qiuyuan)
        sheet1.write(page * len(input4_players2) + j, 2, qiudui)
        sheet1.write(page * len(input4_players2) + j, 3, defen)
        sheet1.write(page * len(input4_players2) + j, 4, chushou)
        sheet1.write(page * len(input4_players2) + j, 5, mingzhong)
        sheet1.write(page * len(input4_players2) + j, 6, chushou3)
        sheet1.write(page * len(input4_players2) + j, 7, mingzhong3)
        sheet1.write(page * len(input4_players2) + j, 8, faci)
        sheet1.write(page * len(input4_players2) + j, 9, falv)
        sheet1.write(page * len(input4_players2) + j, 10, lanban)
        sheet1.write(page * len(input4_players2) + j, 11, qlanban)
        sheet1.write(page * len(input4_players2) + j, 12, hlanban)
        sheet1.write(page * len(input4_players2) + j, 13, zhugong)
        sheet1.write(page * len(input4_players2) + j, 14, qiangduan)
        sheet1.write(page * len(input4_players2) + j, 15, gaimao)
        sheet1.write(page * len(input4_players2) + j, 16, shiwu)
        sheet1.write(page * len(input4_players2) + j, 17, fangui)
        sheet1.write(page * len(input4_players2) + j, 18, changci)
        sheet1.write(page * len(input4_players2) + j, 19, shangchang)
        df.save('F:/NBA1.xls')
        print('有{}'.format(j) + '个球队已写入哈哈')

    browser.find_element_by_xpath('/html/body/div[3]/div[2]/ul/li[2]').click()
    time.sleep(3)
    input4_players = browser.find_element_by_class_name('content')
    input4_players2 = input4_players.find_elements_by_css_selector('li')
    page += 1
    for j in range(len(input4_players2)):
        paiming = input4_players2[j].find_element_by_class_name('paiming').text
        qiuyuan = input4_players2[j].find_element_by_class_name('qiuyuan').text
        qiudui = input4_players2[j].find_element_by_class_name('qiudui').text
        defen = input4_players2[j].find_element_by_class_name('defen').text
        chushou = input4_players2[j].find_element_by_class_name('chushou').text
        mingzhong = input4_players2[j].find_element_by_class_name('mingzhong').text
        chushou3 = input4_players2[j].find_element_by_class_name('chushou3').text
        mingzhong3 = input4_players2[j].find_element_by_class_name('mingzhong3').text
        faci = input4_players2[j].find_element_by_class_name('faci').text
        falv = input4_players2[j].find_element_by_class_name('falv').text
        lanban = input4_players2[j].find_element_by_class_name('lanban').text
        qlanban = input4_players2[j].find_element_by_class_name('qlanban').text
        hlanban = input4_players2[j].find_element_by_class_name('hlanban').text
        zhugong = input4_players2[j].find_element_by_class_name('zhugong').text
        qiangduan = input4_players2[j].find_element_by_class_name('qiangduan').text
        gaimao = input4_players2[j].find_element_by_class_name('gaimao').text
        shiwu = input4_players2[j].find_element_by_class_name('shiwu').text
        fangui = input4_players2[j].find_element_by_class_name('fangui').text
        changci = input4_players2[j].find_element_by_class_name('changci').text
        shangchang = input4_players2[j].find_element_by_class_name('shangchang').text
        sheet1.write(page * len(input4_players2) + j, 0, paiming)
        sheet1.write(page * len(input4_players2) + j, 1, qiuyuan)
        sheet1.write(page * len(input4_players2) + j, 2, qiudui)
        sheet1.write(page * len(input4_players2) + j, 3, defen)
        sheet1.write(page * len(input4_players2) + j, 4, chushou)
        sheet1.write(page * len(input4_players2) + j, 5, mingzhong)
        sheet1.write(page * len(input4_players2) + j, 6, chushou3)
        sheet1.write(page * len(input4_players2) + j, 7, mingzhong3)
        sheet1.write(page * len(input4_players2) + j, 8, faci)
        sheet1.write(page * len(input4_players2) + j, 9, falv)
        sheet1.write(page * len(input4_players2) + j, 10, lanban)
        sheet1.write(page * len(input4_players2) + j, 11, qlanban)
        sheet1.write(page * len(input4_players2) + j, 12, hlanban)
        sheet1.write(page * len(input4_players2) + j, 13, zhugong)
        sheet1.write(page * len(input4_players2) + j, 14, qiangduan)
        sheet1.write(page * len(input4_players2) + j, 15, gaimao)
        sheet1.write(page * len(input4_players2) + j, 16, shiwu)
        sheet1.write(page * len(input4_players2) + j, 17, fangui)
        sheet1.write(page * len(input4_players2) + j, 18, changci)
        sheet1.write(page * len(input4_players2) + j, 19, shangchang)
        df.save('F:/NBA1.xls')
        print('有{}'.format(j) + '个球队已写入哈哈')

    browser.find_element_by_xpath('/html/body/div[3]/div[2]/ul/li[3]').click()
    time.sleep(3)
    input4_players = browser.find_element_by_class_name('content')
    input4_players2 = input4_players.find_elements_by_css_selector('li')
    page += 1
    for j in range(len(input4_players2)):
        paiming = input4_players2[j].find_element_by_class_name('paiming').text
        qiuyuan = input4_players2[j].find_element_by_class_name('qiuyuan').text
        qiudui = input4_players2[j].find_element_by_class_name('qiudui').text
        defen = input4_players2[j].find_element_by_class_name('defen').text
        chushou = input4_players2[j].find_element_by_class_name('chushou').text
        mingzhong = input4_players2[j].find_element_by_class_name('mingzhong').text
        chushou3 = input4_players2[j].find_element_by_class_name('chushou3').text
        mingzhong3 = input4_players2[j].find_element_by_class_name('mingzhong3').text
        faci = input4_players2[j].find_element_by_class_name('faci').text
        falv = input4_players2[j].find_element_by_class_name('falv').text
        lanban = input4_players2[j].find_element_by_class_name('lanban').text
        qlanban = input4_players2[j].find_element_by_class_name('qlanban').text
        hlanban = input4_players2[j].find_element_by_class_name('hlanban').text
        zhugong = input4_players2[j].find_element_by_class_name('zhugong').text
        qiangduan = input4_players2[j].find_element_by_class_name('qiangduan').text
        gaimao = input4_players2[j].find_element_by_class_name('gaimao').text
        shiwu = input4_players2[j].find_element_by_class_name('shiwu').text
        fangui = input4_players2[j].find_element_by_class_name('fangui').text
        changci = input4_players2[j].find_element_by_class_name('changci').text
        shangchang = input4_players2[j].find_element_by_class_name('shangchang').text
        sheet1.write(page * len(input4_players2) + j, 0, paiming)
        sheet1.write(page * len(input4_players2) + j, 1, qiuyuan)
        sheet1.write(page * len(input4_players2) + j, 2, qiudui)
        sheet1.write(page * len(input4_players2) + j, 3, defen)
        sheet1.write(page * len(input4_players2) + j, 4, chushou)
        sheet1.write(page * len(input4_players2) + j, 5, mingzhong)
        sheet1.write(page * len(input4_players2) + j, 6, chushou3)
        sheet1.write(page * len(input4_players2) + j, 7, mingzhong3)
        sheet1.write(page * len(input4_players2) + j, 8, faci)
        sheet1.write(page * len(input4_players2) + j, 9, falv)
        sheet1.write(page * len(input4_players2) + j, 10, lanban)
        sheet1.write(page * len(input4_players2) + j, 11, qlanban)
        sheet1.write(page * len(input4_players2) + j, 12, hlanban)
        sheet1.write(page * len(input4_players2) + j, 13, zhugong)
        sheet1.write(page * len(input4_players2) + j, 14, qiangduan)
        sheet1.write(page * len(input4_players2) + j, 15, gaimao)
        sheet1.write(page * len(input4_players2) + j, 16, shiwu)
        sheet1.write(page * len(input4_players2) + j, 17, fangui)
        sheet1.write(page * len(input4_players2) + j, 18, changci)
        sheet1.write(page * len(input4_players2) + j, 19, shangchang)
        df.save('F:/NBA1.xls')
        print('有{}'.format(j) + '个球队已写入哈哈')

    browser.find_element_by_xpath('/html/body/div[3]/div[2]/ul/li[4]').click()
    time.sleep(3)
    input4_players = browser.find_element_by_class_name('content')
    input4_players2 = input4_players.find_elements_by_css_selector('li')
    page += 1
    for j in range(len(input4_players2)):
        paiming = input4_players2[j].find_element_by_class_name('paiming').text
        qiuyuan = input4_players2[j].find_element_by_class_name('qiuyuan').text
        qiudui = input4_players2[j].find_element_by_class_name('qiudui').text
        defen = input4_players2[j].find_element_by_class_name('defen').text
        chushou = input4_players2[j].find_element_by_class_name('chushou').text
        mingzhong = input4_players2[j].find_element_by_class_name('mingzhong').text
        chushou3 = input4_players2[j].find_element_by_class_name('chushou3').text
        mingzhong3 = input4_players2[j].find_element_by_class_name('mingzhong3').text
        faci = input4_players2[j].find_element_by_class_name('faci').text
        falv = input4_players2[j].find_element_by_class_name('falv').text
        lanban = input4_players2[j].find_element_by_class_name('lanban').text
        qlanban = input4_players2[j].find_element_by_class_name('qlanban').text
        hlanban = input4_players2[j].find_element_by_class_name('hlanban').text
        zhugong = input4_players2[j].find_element_by_class_name('zhugong').text
        qiangduan = input4_players2[j].find_element_by_class_name('qiangduan').text
        gaimao = input4_players2[j].find_element_by_class_name('gaimao').text
        shiwu = input4_players2[j].find_element_by_class_name('shiwu').text
        fangui = input4_players2[j].find_element_by_class_name('fangui').text
        changci = input4_players2[j].find_element_by_class_name('changci').text
        shangchang = input4_players2[j].find_element_by_class_name('shangchang').text
        sheet1.write(page * len(input4_players2) + j, 0, paiming)
        sheet1.write(page * len(input4_players2) + j, 1, qiuyuan)
        sheet1.write(page * len(input4_players2) + j, 2, qiudui)
        sheet1.write(page * len(input4_players2) + j, 3, defen)
        sheet1.write(page * len(input4_players2) + j, 4, chushou)
        sheet1.write(page * len(input4_players2) + j, 5, mingzhong)
        sheet1.write(page * len(input4_players2) + j, 6, chushou3)
        sheet1.write(page * len(input4_players2) + j, 7, mingzhong3)
        sheet1.write(page * len(input4_players2) + j, 8, faci)
        sheet1.write(page * len(input4_players2) + j, 9, falv)
        sheet1.write(page * len(input4_players2) + j, 10, lanban)
        sheet1.write(page * len(input4_players2) + j, 11, qlanban)
        sheet1.write(page * len(input4_players2) + j, 12, hlanban)
        sheet1.write(page * len(input4_players2) + j, 13, zhugong)
        sheet1.write(page * len(input4_players2) + j, 14, qiangduan)
        sheet1.write(page * len(input4_players2) + j, 15, gaimao)
        sheet1.write(page * len(input4_players2) + j, 16, shiwu)
        sheet1.write(page * len(input4_players2) + j, 17, fangui)
        sheet1.write(page * len(input4_players2) + j, 18, changci)
        sheet1.write(page * len(input4_players2) + j, 19, shangchang)
        df.save('F:/NBA1.xls')
        print('有{}'.format(j) + '个球队已写入哈哈')

这个写得也太烂了,没办法,好多东西都忘了,不过还是能用,就是看着sp了点。优化一下这个应该可以是把相同的部分定义为一个函数,后面点击下一页后直接调用就ok。不用写得这么麻烦。需要改的朋友自行改动。

其实selenium用来写爬虫很烂,速度慢,占资源等,用request,re,bs4等要好很多,不过selenium就是简单,不用花很长时间就能上手,如果有经常用的,还是用其他方式爬好一点。如果是像我这种一学期用一两次的,还是selenium好一点,真的像是傻瓜式的操作。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值