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 相关文章推荐
Win7上搭建Cocos2d-x 3.1.1开发环境
Jul 03 Python
在Python中使用sort()方法进行排序的简单教程
May 21 Python
Python中pandas dataframe删除一行或一列:drop函数详解
Jul 03 Python
Flask框架信号用法实例分析
Jul 24 Python
使用selenium模拟登录解决滑块验证问题的实现
May 10 Python
python利用wx实现界面按钮和按钮监听和字体改变的方法
Jul 17 Python
Python秒算24点实现及原理详解
Jul 29 Python
django 使用 PIL 压缩图片的例子
Aug 16 Python
Tensorflow矩阵运算实例(矩阵相乘,点乘,行/列累加)
Feb 05 Python
python等待10秒执行下一命令的方法
Jul 19 Python
python logging模块的使用详解
Oct 23 Python
Python识别花卉种类鉴定网络热门植物并自动整理分类
Apr 08 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版)
2006/10/09 PHP
PHP通用分页类page.php[仿google分页]
2008/08/31 PHP
Laravel框架学习笔记(二)项目实战之模型(Models)
2014/10/15 PHP
详解PHP数据压缩、加解密(pack, unpack)
2016/12/17 PHP
laravel 5.5 关闭token的3种实现方式
2019/10/24 PHP
用YUI做了个标签浏览效果
2007/02/20 Javascript
新增加的内容是如何将div的scrollbar自动移动最下面
2014/01/02 Javascript
js通过八个点 拖动改变div大小的实现方法
2014/03/05 Javascript
JavaScript阻止事件冒泡示例分享
2014/12/28 Javascript
自己动手写的javascript前端等待控件
2015/10/30 Javascript
jquery通过name属性取值的简单实现方法
2016/06/20 Javascript
基于Bootstrap实现下拉菜单项和表单导航条(两个菜单项,一个下拉菜单和登录表单导航条)
2016/07/22 Javascript
基于JavaScript实现鼠标向下滑动加载div的代码
2016/08/31 Javascript
vue2.0实现的tab标签切换效果(内容可自定义)示例
2019/02/11 Javascript
JS前端知识点总结之页面加载事件,数组操作,DOM节点操作,循环和分支
2019/07/04 Javascript
浅谈JS中this在各个场景下的指向
2019/08/14 Javascript
vue中el-input绑定键盘按键(按键修饰符)
2020/07/22 Javascript
jQuery实现滑动开关效果
2020/08/02 jQuery
新手该如何学python怎么学好python?
2008/10/07 Python
Python获取linux主机ip的简单实现方法
2016/04/18 Python
Python正则匹配判断手机号是否合法的方法
2020/12/09 Python
Python 面向对象之类class和对象基本用法示例
2020/02/02 Python
解决Python中导入自己写的类,被划红线,但不影响执行的问题
2020/07/13 Python
解决Windows下python和pip命令无法使用的问题
2020/08/31 Python
用Python自动清理电脑内重复文件,只要10行代码(自动脚本)
2021/01/09 Python
TripAdvisor日本:全球领先的旅游网站
2019/02/14 全球购物
迪奥美国官网:Dior美国
2019/12/07 全球购物
什么是WEB控件?使用WEB控件有哪些优势?
2012/01/21 面试题
教师的实习自我鉴定
2013/12/17 职场文书
解除劳动合同协议书范本2014
2014/09/25 职场文书
债务授权委托书范本
2014/10/17 职场文书
2015年12.4全国法制宣传日活动总结
2015/03/24 职场文书
MySQL表的增删改查基础教程
2021/04/07 MySQL
MySQL 可扩展设计的基本原则
2021/05/14 MySQL
教你使用VS Code的MySQL扩展管理数据库的方法
2022/01/22 MySQL
Pandas实现批量拆分与合并Excel的示例代码
2022/05/30 Python