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备份文件以及mysql数据库的脚本代码
Jun 10 Python
python完成FizzBuzzWhizz问题(拉勾网面试题)示例
May 05 Python
python代码 if not x: 和 if x is not None: 和 if not x is None:使用介绍
Sep 21 Python
浅谈python内置变量-reversed(seq)
Jun 21 Python
Python的SimpleHTTPServer模块用处及使用方法简介
Jan 22 Python
对numpy 数组和矩阵的乘法的进一步理解
Apr 04 Python
利用Pandas 创建空的DataFrame方法
Apr 08 Python
pandas通过loc生成新的列方法
Nov 28 Python
Python 安装第三方库 pip install 安装慢安装不上的解决办法
Jun 18 Python
python 列表推导式使用详解
Aug 29 Python
python如何查看安装了的模块
Jun 23 Python
Python 键盘事件详解
Nov 11 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程序防止ddos,dns,集群服务器攻击的解决办法
2013/06/18 PHP
jQuery+PHP实现的掷色子抽奖游戏实例
2015/01/04 PHP
PHP模拟登陆163邮箱发邮件及获取通讯录列表的方法
2015/03/07 PHP
PHP使用PHPexcel导入导出数据的方法
2015/11/14 PHP
PHP new static 和 new self详解
2017/02/19 PHP
thinkphp5.1框架模板布局与模板继承用法分析
2019/07/19 PHP
WordPress JQuery处理沙发头像
2009/06/22 Javascript
Jquery Ajax学习实例6 向WebService发出请求,返回DataSet(XML) 异步调用
2010/03/18 Javascript
jquery 跳到顶部和底部动画2句代码简单实现
2013/07/18 Javascript
jQuery的live()方法对hover事件的处理示例
2014/02/27 Javascript
深入浅析JavaScript中的arguments对象(强力推荐)
2016/06/03 Javascript
浅谈javascript中new操作符的原理
2016/06/07 Javascript
微信小程序 倒计时组件实现代码
2016/10/24 Javascript
Javascript 数组去重的方法(四种)详解及实例代码
2016/11/24 Javascript
Jquery实时监听input value的实例
2017/01/26 Javascript
Angular2下使用pdf插件的方法详解
2017/04/29 Javascript
js字符串与Unicode编码互相转换
2017/05/17 Javascript
详解vue-cli + webpack 多页面实例配置优化方法
2017/07/13 Javascript
Java设计中的Builder模式的介绍
2018/03/22 Javascript
axios对请求各种异常情况处理的封装方法
2018/09/25 Javascript
javascript中导出与导入实现模块化管理教程
2020/12/03 Javascript
详解vite2.0配置学习(typescript版本)
2021/02/25 Javascript
[02:45]DOTA2英雄敌法师基础教程
2013/11/25 DOTA
Python3实现发送邮件和发送短信验证码功能
2020/01/07 Python
Pytorch mask_select 函数的用法详解
2020/02/18 Python
Python3开发环境搭建详细教程
2020/06/18 Python
Python descriptor(描述符)的实现
2020/11/15 Python
trivago美国:全球最大的酒店价格比较网站
2018/01/18 全球购物
荷兰领先的百货商店:De Bijenkorf
2018/10/17 全球购物
局域网标准
2016/09/10 面试题
实习评语
2013/12/16 职场文书
全民健身日活动方案
2014/01/29 职场文书
大学生优秀班干部事迹材料
2014/05/26 职场文书
SpringBoot集成Redis的思路详解
2021/10/16 Redis
pytorch分类模型绘制混淆矩阵以及可视化详解
2022/04/07 Python
Sql Server 行数据的某列值想作为字段列显示的方法
2022/04/20 SQL Server