1.数据抓取

1.1使用工具及爬取内容介绍

使用了python的自动化框架selenium进行动态爬取,Selenium是一个用于Web应用程序自动化测试工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。

主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。

测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成 .Net、Java、Perl等不同语言的测试脚本。

本次爬取的网址是腾讯网的NBA栏目,爬取的内容是NBA球员的比赛信息以及热点新闻,爬取完成后将数据保存到csv文件中以便分析读取,后续会通过生成图表图形的方式来展示具体爬取的内容。

1.2爬虫的步骤

爬取的步骤为:确定爬取的内容、对主页面解析、子页面的获取、子页面的解析、数据的保存。我爬取的网站暂未发现反爬虫机制,所以本次不做反爬虫措施。

先找到要爬取的页面,通过解析主页面的标签找到进入子页面的链接,然后在子页面找到要爬取的信息对应的标签

分析页面:
NBA球员信息盘点(数据分析)  第1张

可以看到要爬取的信息都会在对应的标签或者对应的class下,因此我们可以根据选择进行爬取。

NBA球员信息盘点(数据分析)  第2张

获取页面所用的代码:

from selenium import webdriver browser = webdriver.Chrome(D:/chromedriver.exe) browser.get(https://sports.qq.com/nba/)

2.数据存储

2.1写入csv

爬取到所需的数据之后,需要对数据进行处理,本文使用了写入csv和写入txt的方法来保存数据。

with open("NBA.csv","w",newline="") as csvfile: writer = csv.writer(csvfile) writer.writerow(["排名","球员","球队","得分","出手数","命中率","3分出手","3分命中率","罚球次数","罚球命中率","篮板","前场篮板","后场篮板","助攻","抢断","盖帽","失误","犯规","场次","上场时间"])

由于第一次写入的是每一列的列名,所以使用了两次with open的方法,第二次开始循环写入每一行的信息。

#要爬取的内容 input4_players=browser4.find