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中执行shell命令的几个方法小结
Sep 18 Python
python列出目录下指定文件与子目录的方法
Jul 03 Python
Python统计日志中每个IP出现次数的方法
Jul 06 Python
Python中的time模块与datetime模块用法总结
Jun 30 Python
python简单实现获取当前时间
Aug 27 Python
Python双向循环链表实现方法分析
Jul 30 Python
一行代码让 Python 的运行速度提高100倍
Oct 08 Python
Python2和Python3中urllib库中urlencode的使用注意事项
Nov 26 Python
初探利用Python进行图文识别(OCR)
Feb 26 Python
关于Pytorch MaxUnpool2d中size操作方式
Jan 03 Python
PyTorch-GPU加速实例
Jun 23 Python
python实现简单的学生管理系统
Feb 22 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 模拟登陆MSN并获得用户信息
2009/05/16 PHP
PHP 多维数组排序(usort,uasort)
2010/06/30 PHP
php expects parameter 1 to be resource, array given 错误
2011/03/23 PHP
php常用Stream函数集介绍
2013/06/24 PHP
thinkphp框架类库扩展操作示例
2019/11/26 PHP
Laravel中如何轻松容易的输出完整的SQL语句
2020/07/26 PHP
点击文章内容处弹出页面代码
2009/10/01 Javascript
javascript 判断数组是否已包含了某个元素的函数
2010/05/30 Javascript
jQuery中判断一个元素是否为另一个元素的子元素(或者其本身)
2012/03/21 Javascript
javascript面向对象之访问对象属性的两种方式分析
2015/01/13 Javascript
jquery控制背景音乐开关与自动播放提示音的方法
2015/02/06 Javascript
jQuery实现鼠标滑过链接控制图片的滑动展开与隐藏效果
2015/10/28 Javascript
图文详解JavaScript的原型对象及原型链
2016/08/02 Javascript
在 Angular 中实现搜索关键字高亮示例
2017/03/21 Javascript
微信小程序之页面跳转和参数传递的实现
2017/09/29 Javascript
jQuery中库的引用方法
2018/01/06 jQuery
对vue里函数的调用顺序介绍
2018/03/17 Javascript
vue小白入门教程
2018/04/02 Javascript
javaScript产生随机数的用法小结
2018/04/21 Javascript
vue.js编译时给生成的文件增加版本号
2018/09/17 Javascript
微信实现自动跳转到用其他浏览器打开指定APP下载
2019/02/15 Javascript
javascript数组去重方法总结(推荐)
2019/03/20 Javascript
JavaScript实现刮刮乐效果
2020/11/01 Javascript
[00:43]拉比克至宝魔导师密钥展示
2018/12/20 DOTA
pycharm 使用心得(一)安装和首次使用
2014/06/05 Python
python 3利用BeautifulSoup抓取div标签的方法示例
2017/05/28 Python
python3+requests接口自动化session操作方法
2018/10/13 Python
numpy ndarray 取出满足特定条件的某些行实例
2019/12/05 Python
Python中Selenium库使用教程详解
2020/07/23 Python
美国家具网站:Cymax
2016/09/17 全球购物
AJAX的优缺点都有什么
2015/08/18 面试题
物理教育专业毕业生推荐信
2013/11/03 职场文书
巧克力蛋糕店创业计划书
2014/01/14 职场文书
服务员岗位职责
2014/01/29 职场文书
《火烧云》教学反思
2014/04/12 职场文书
大学生英语演讲稿
2014/04/24 职场文书