from selenium import webdriver driver = webdriver.Chrome() url = 'https://www.basketball-reference.com/leagues/NBA_2019.html' driver.get(url)
# 操作等待 driver.implicitly_wait(3) list_name = driver.find_elements_by_xpath('//*[@id="team-stats-per_game"]/tbody/tr/td[1]/a') # 三分球命中次数 list_3p = driver.find_elements_by_xpath('//*[@id="team-stats-per_game"]/tbody/tr/td[7]') # 三分球投射次数 list_3pa = driver.find_elements_by_xpath('//*[@id="team-stats-per_game"]/tbody/tr/td[8]') # 二分球命中次数 list_2p = driver.find_elements_by_xpath('//*[@id="team-stats-per_game"]/tbody/tr/td[10]') # 二分球投射次数 list_2pa = driver.find_elements_by_xpath('//*[@id="team-stats-per_game"]/tbody/tr/td[11]') # 导包 from pymongo import MongoClient # 链接mongo con = MongoClient(host='127.0.0.1',port=27017) # 链接数据库 db = con['python'] # 授权 db.authenticate(name='lu',password='123456',source='admin') # 链接集合 coll = db['NBA'] length = len(list_name) for i in range(length):
# 将selenium对象转成文本 name = list_name[i].text p3 = list_3p[i].text pa3 = list_3pa[i].text p2 = list_2p[i].text pa2 = list_2pa[i].text ret = coll.insert_one({'team队伍':name,'p3三分球命中次数':p3,'p3a三分球投射次数':pa3,'p2二分球命中次数':p2,'p2a三分球投射次数':pa2})
selenium:浏览器自动化测试框架 ,Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。
mongodb:是一个基于分布式文件存储的数据库。由C++语言编写。介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
业务需求:
将某网站的数据用python爬虫技术爬取下来,并且存储到mongodb数据库。