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

yipeiwu_com5年前Python爬虫

本文实例为大家分享了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学习笔记之抓取某只基金历史净值数据实战案例

Python学习笔记之抓取某只基金历史净值数据实战案例

本文实例讲述了Python抓取某只基金历史净值数据。分享给大家供大家参考,具体如下: http://fund.eastmoney.com/f10/jjjz_519961.html 1、...

教你用python3根据关键词爬取百度百科的内容

前言 关于python版本,我一开始看很多资料说python2比较好,因为很多库还不支持3,但是使用到现在为止觉得还是pythin3比较好用,因为编码什么的问题,觉得2还是没有3方便。而...

python爬虫面试宝典(常见问题)

是否了解线程的同步和异步? 线程同步:多个线程同时访问同一资源,等待资源访问结束,浪费时间,效率低 线程异步:在访问资源时在空闲等待时同时访问其他资源,实现多线程机制 是否...

详解Python静态网页爬取获取高清壁纸

详解Python静态网页爬取获取高清壁纸

前言 在设计爬虫项目的时候,首先要在脑内明确人工浏览页面获得图片时的步骤 一般地,我们去网上批量打开壁纸的时候一般操作如下: 1、打开壁纸网页 2、单击壁纸图(打开指定壁纸的页面) 3、...

python爬取Ajax动态加载网页过程解析

常见的反爬机制及处理方式 1、Headers反爬虫 :Cookie、Referer、User-Agent 解决方案: 通过F12获取headers,传给requests.get()方法...