python爬取足球直播吧五大联赛积分榜


Posted in Python onJune 13, 2018

本文实例为大家分享了python爬取足球联赛积分榜的具体代码,供大家参考,具体内容如下

使用BeautifulSoup4解析爬取足球直播吧五大联赛积分榜信息;

#! /usr/bin/python3 
# -*- coding:utf-8 -*- 
from urllib.request import urlopen 
from urllib.request import quote 
from bs4 import BeautifulSoup 
import time 
import re 
import json 
import pymysql 
 
url="https://data.zhibo8.cc/pc_main_data/#/dejia/index1" 
response = urlopen(url) 
bs = BeautifulSoup(response,"html.parser") 
 
# print(bs) 
liansai_s = bs.select("ul.data_nav > li") 
 
# print(liansai_lists) 
 
# <li ng-class="{current:current==0}" ng-click="selcuptype(0,'NBA')"> 
#  <a data-index="nba" href="#/team_nba/nba" rel="external nofollow" name="NBA"> 
#    <div class="data_item" ng-class="{current2:current==0}">NBA</div> 
#    <div class="data_item_logo"><img src="images/nba.png"/></div> 
#  </a> 
# </li> 
 
liansai_lists = [] 
for liansai in liansai_s: 
  # print(liansai) 
  ls = [] 
  href = liansai.select("a")[0].get("href") 
  # print(href) 
  lsName = liansai.select("a > div.data_item")[0].text 
  ls.append(href) 
  ls.append(lsName) 
  liansai_lists.append(ls) 
 
# print(liansai_lists) 
 
#{ 
# '排名': '1', 
# 'teamId': '565', 
# '球队': '巴塞罗那', 
# '场次': '29', 
# '胜': '23', 
# '平': '6', 
# '负': '0', 
# '进/失球': '74/13', 
# '净胜球': '61', 
# '积分': '75', 
# '球队图标': 'http://duihui.qiumibao.com/zuqiu/basailuona.png', 
# '字体颜色': '#e62e2e', 
# '夜间字体颜色': '#af2d2d', 
# '背景颜色': '#ffffff', 
# '球队名称': '巴塞罗那' 
# }, 
 
location = '' 
def insert_into_db(lists): 
  #将数据写入到数据库中 
  con = pymysql.connect(host="localhost", user="root", password="root", database="zhi_bo_ba", charset='utf8', port=3306) 
  # 游标。 作用 就等同于 JDBC 中的 Statement 
  cursor = con.cursor() 
  for record in lists: 
    print(record) 
    sql_insert = "insert into jifenbang (liansai, paiming, qiudui, changci, sheng,ping,fu,jinqiu_shiqu,jingsheng,jifen) values (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s)" 
    cursor.execute(sql_insert, record) 
 
  con.commit() 
  cursor.close() 
  con.close() 
 
 
def jifenbang(str): 
  # print(str) 
  datas = urlopen(str) 
  #加载json类型的数据 
  datas = json.load(datas) 
  jifen_list = [] 
  for info in datas['data']: 
    j_f = [] 
    j_f.append(location) 
    j_f.append(info['排名']) 
    j_f.append(info['球队']) 
    j_f.append(info['场次']) 
    j_f.append(info['胜']) 
    j_f.append(info['平']) 
    j_f.append(info['负']) 
    j_f.append(info['进/失球']) 
    j_f.append(info['净胜球']) 
    j_f.append(info['积分']) 
    jifen_list.append(j_f) 
  print(jifen_list) 
  insert_into_db(jifen_list) 
   
# https://dc.qiumibao.com/shuju/public/index.php?_url=/data/index&league=联赛&tab=%积分榜&year=[year] 
# https://dc.qiumibao.com/shuju/public/index.php?_url=/data/index&league=联赛&tab=球员榜&type=射手榜&year=[year] 
urls="https://dc.qiumibao.com/shuju/public/index.php?_url=/data/index&league=" 
list = ['西甲','英超','意甲','德甲','法甲','中超','中甲'] 
for aa in liansai_lists: 
 
  if aa[1] in list: 
    location = aa[1] 
    new_url = '%s%s&tab=%s&year=[year]' % (urls,quote(aa[1]),quote('积分榜')) 
    jifenbang(new_url)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python Web框架Pylons中使用MongoDB的例子
Dec 03 Python
python使用os模块的os.walk遍历文件夹示例
Jan 27 Python
Python用GET方法上传文件
Mar 10 Python
python获取元素在数组中索引号的方法
Jul 15 Python
Python多线程结合队列下载百度音乐的方法
Jul 27 Python
python与sqlite3实现解密chrome cookie实例代码
Jan 20 Python
Python cookbook(数据结构与算法)筛选及提取序列中元素的方法
Mar 19 Python
对python Tkinter Text的用法详解
Oct 11 Python
浅谈Python3 numpy.ptp()最大值与最小值的差
Aug 24 Python
解决matplotlib.pyplot在Jupyter notebook中不显示图像问题
Apr 22 Python
使用Python文件读写,自定义分隔符(custom delimiter)
Jul 05 Python
python中tkinter窗口位置\坐标\大小等实现示例
Jul 09 Python
Python实现多条件筛选目标数据功能【测试可用】
Jun 13 #Python
mac 安装python网络请求包requests方法
Jun 13 #Python
Scrapy基于selenium结合爬取淘宝的实例讲解
Jun 13 #Python
利用Anaconda简单安装scrapy框架的方法
Jun 13 #Python
基于scrapy的redis安装和配置方法
Jun 13 #Python
mac下给python3安装requests库和scrapy库的实例
Jun 13 #Python
Python3实现将本地JSON大数据文件写入MySQL数据库的方法
Jun 13 #Python
You might like
PHP的FTP学习(三)
2006/10/09 PHP
怎样在UNIX系统下安装php3
2006/10/09 PHP
在任意字符集下正常显示网页的方法二(续)
2007/04/01 PHP
phpize的深入理解
2013/06/03 PHP
PHP-Java-Bridge使用笔记
2014/09/22 PHP
php+ajax实现无刷新数据分页的办法
2015/11/02 PHP
ThinkPHP打水印及设置水印位置的方法
2016/10/14 PHP
PHP-CGI远程代码执行漏洞分析与防范
2017/05/07 PHP
PHP实现微信提现功能(微信商城)
2019/11/21 PHP
javascript div 遮罩层封锁整个页面
2009/07/10 Javascript
通过判断JavaScript的版本实现执行不同的代码
2010/05/11 Javascript
js判断手机和pc端选择不同执行事件的方法
2015/01/30 Javascript
jQuery实现TAB选项卡切换特效简单演示
2016/03/04 Javascript
Ajax跨域实现代码(后台jsp)
2017/01/21 Javascript
jquery hover 不停闪动问题的解决方法(亦为stop()的使用)
2017/02/10 Javascript
关于vue.js过渡css类名的理解(推荐)
2017/04/10 Javascript
如何使用angularJs
2017/05/08 Javascript
vue.js动态数据绑定学习笔记
2017/05/19 Javascript
小程序红包雨的实现示例
2019/02/19 Javascript
nodejs中request库使用HTTPS代理的方法
2019/04/30 NodeJs
JS求1到任意数之间的所有质数的方法详解
2019/05/20 Javascript
如何基于layui的laytpl实现数据绑定的示例代码
2020/04/10 Javascript
微信小程序:报错(in promise) MiniProgramError
2020/10/30 Javascript
[02:20]DOTA2亚洲邀请赛 EHOME战队出场宣传片
2015/02/07 DOTA
在Python中操作字典之setdefault()方法的使用
2015/05/21 Python
Python爬虫之模拟知乎登录的方法教程
2017/05/25 Python
scrapy spider的几种爬取方式实例代码
2018/01/25 Python
使用Python制作微信跳一跳辅助
2018/01/31 Python
Python函数的定义方式与函数参数问题实例分析
2019/12/26 Python
Python openpyxl 插入折线图实例
2020/04/17 Python
CSS3的RGBA中关于整数和百分比值的转换
2015/08/04 HTML / CSS
css3实现蒙版弹幕功能
2019/06/18 HTML / CSS
半年思想汇报
2013/12/30 职场文书
机械设计及其自动化求职推荐信
2014/02/17 职场文书
开业庆典策划方案
2014/02/18 职场文书
婚宴新娘致辞
2015/07/28 职场文书