[python3]nba球员数据爬虫
2017-04-07 22:12
633 查看
爬取的数据为新浪nba数据库
方法是先爬取球员列表页面然后进入每个球员页面进行爬取,结果生成为csv
由于个人需求只爬取了16-17赛季数据,可通过修改正则表达式进行定制
代码如下:
import urllib.request
import re
import csv
myUrl ="http://nba.sports.sina.com.cn/players.php?dpc=1"
user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
headers = { 'User-Agent' : user_agent }
req = urllib.request.Request(myUrl, headers = headers)
myResponse = urllib.request.urlopen(req)
myPage = myResponse.read()
#encode的作用是将unicode编码转换成其他编码的字符串
#decode的作用是将其他编码的字符串转换成unicode编码
unicodePage = myPage.decode("GB2312")
#print(unicodePage)
myItems = re.findall(' <a href=\'(.*?)\'>(.*?)</a>',unicodePage,re.S)
items = []
for item in myItems:
# item 中第一个是url
# item 中第二个是球员姓名
try:
memUrl="http://nba.sports.sina.com.cn/"+item[0]
memName=item[1]
newReq=urllib.request.Request(memUrl, headers = headers)
newResponse = urllib.request.urlopen(newReq)
newPage = newResponse.read()
unicodeNewPage = newPage.decode("GB2312")
memItems = re.findall('<tr bgcolor="#FFEFB6".*?16-17.*?</a></td>(.*?)</tr>',unicodeNewPage,re.S)
j=[]
# print(memItem[0].)
j=re.findall("<td>(.*?)</td>",memItems[0],re.S)
with open("nba.csv","a",newline="") as datacsv:
csvwriter = csv.writer(datacsv,dialect = ("excel"))
#csv文件插入一行数据,把下面列表中的每一项放入一个单元格(可以用循环插入多行)
csvwriter.writerow([memName,j[0],j[1],j[2],j[3],j[4],j[5],j[6],j[7],j[8],j[9],j[10],j[11],j[12],j[13],j[14]])
except Exception as err:
print(err)
print(item[1])
方法是先爬取球员列表页面然后进入每个球员页面进行爬取,结果生成为csv
由于个人需求只爬取了16-17赛季数据,可通过修改正则表达式进行定制
代码如下:
import urllib.request
import re
import csv
myUrl ="http://nba.sports.sina.com.cn/players.php?dpc=1"
user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
headers = { 'User-Agent' : user_agent }
req = urllib.request.Request(myUrl, headers = headers)
myResponse = urllib.request.urlopen(req)
myPage = myResponse.read()
#encode的作用是将unicode编码转换成其他编码的字符串
#decode的作用是将其他编码的字符串转换成unicode编码
unicodePage = myPage.decode("GB2312")
#print(unicodePage)
myItems = re.findall(' <a href=\'(.*?)\'>(.*?)</a>',unicodePage,re.S)
items = []
for item in myItems:
# item 中第一个是url
# item 中第二个是球员姓名
try:
memUrl="http://nba.sports.sina.com.cn/"+item[0]
memName=item[1]
newReq=urllib.request.Request(memUrl, headers = headers)
newResponse = urllib.request.urlopen(newReq)
newPage = newResponse.read()
unicodeNewPage = newPage.decode("GB2312")
memItems = re.findall('<tr bgcolor="#FFEFB6".*?16-17.*?</a></td>(.*?)</tr>',unicodeNewPage,re.S)
j=[]
# print(memItem[0].)
j=re.findall("<td>(.*?)</td>",memItems[0],re.S)
with open("nba.csv","a",newline="") as datacsv:
csvwriter = csv.writer(datacsv,dialect = ("excel"))
#csv文件插入一行数据,把下面列表中的每一项放入一个单元格(可以用循环插入多行)
csvwriter.writerow([memName,j[0],j[1],j[2],j[3],j[4],j[5],j[6],j[7],j[8],j[9],j[10],j[11],j[12],j[13],j[14]])
except Exception as err:
print(err)
print(item[1])
相关文章推荐
- 利用python爬虫技术获取每天每场的每位球员NBA数据以及每日范特西评分
- python爬虫实战——NBA球员基本数据
- python爬虫抓包爬取NBA中文网近20年球员数据
- Python实现爬虫爬取NBA数据功能示例
- python简单框架实现爬取NBA球员数据
- Python爬虫:用BeautifulSoup进行NBA数据爬取
- Python爬虫爬取NBA数据
- python 爬取新浪网站 NBA球员最近2个赛季库里前20场数据
- Python爬虫:用BeautifulSoup进行NBA数据爬取
- python抓取NBA现役球员基本信息数据并进行分析
- Python 网页爬虫 & 文本处理 & 科学计算 & 机器学习 & 数据挖掘兵器谱
- Python 网页爬虫 & 文本处理 & 科学计算 & 机器学习 & 数据挖掘兵器谱(转)
- python 爬虫 实战(一) —— 抓取学校开课数据
- Python 网页爬虫 & 文本处理 & 科学计算 & 机器学习 & 数据挖掘兵器谱
- Python 网页爬虫 & 文本处理 & 科学计算 & 机器学习 & 数据挖掘兵器谱
- Python 网页爬虫 & 文本处理 & 科学计算 & 机器学习 & 数据挖掘兵器谱
- Python简易爬虫以及嵌套数据类型
- python python 入门学习之网页数据爬虫搜狐汽车数据库
- Python 网页爬虫 & 文本处理 & 科学计算 & 机器学习 & 数据挖掘兵器谱
- Python 网页爬虫 & 文本处理 & 科学计算 & 机器学习 & 数据挖掘兵器谱 - 数客