Python小爬虫-----比赛积分

前言:

个人比较喜欢足球运动,最近想学习一下Python,所以从简单的开始,先了解一下最基本的爬虫获取数据, 直播8个人经常逛的一个足球论坛,顺便爬取一下数据。

目的:

  1. 了解爬虫获取数据的基本方法;
  2. 了解Json字符串的转换和读取,Json的转换在日常的代码编写都是很常用的;

先看看网址请求地址


1540449977(1).jpg

联赛的积分请求地址都是一个,只是传入的参数不同,所以我们不需要去获取该网站的HTML来解析数据,而是请求获取真正数据的请求地址;

代码片段:

需要注意的请求的URL中带有中文字符的需要转换,不然请求会报错
请求的数据连接是直接返回JSON字符串,并没有带HTML元素,没有使用到BeautifulSoup

import urllib.request
import urllib.parse
import json
import time
import threadpool

def getScore(league):
    tab = ’积分榜‘
    word_league = urllib.parse.quote(league)
    word_tab = urllib.parse.quote(tab)
    linlUrl ='https://dc.qiumibao.com/shuju/public/index.php?_url=/data/index&league=%s&tab=%s&year= 
    [year]'%(word_league, word_tab)
    response = urllib.request.urlopen(linlUrl)
    html_data = response.read().decode('utf-8')

   # 将python对象test转换json对象
   #data = json.dumps(html_data, ensure_ascii=False)
   #print(data)

   # 将json对象转换成python对象
   load = json.loads(html_data)
   print(load["data"])

start_time = time.time()
all_league = ["西甲", '意甲', '英超', '德甲', '法甲', '中超']
task_pool = threadpool.ThreadPool(5)
requests = threadpool.makeRequests(getScore,all_league)
for reqin requests:
    task_pool.putRequest(req)
task_pool.wait()
end = time.time()

print (end - start_time)
start1 = time.time()
for leaguein all_league:
    getScore(league)
print (time.time()-start1)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第一部分 创建爬虫 重点介绍网络数据采集的基本原理 : 如何用 Python 从网络服务器 请求信息,如何对服务器...
    万事皆成阅读 6,570评论 0 5
  • 1. 概述 本文主要介绍网络爬虫,采用的实现语言为Python,目的在于阐述网络爬虫的原理和实现,并且对目前常见的...
    Lemon_Home阅读 7,991评论 0 21
  • 第一部分 Python基础篇(80题) 1、为什么学习Python? Python相对于其他编程语言有很多优点: ...
    清清子衿木子水心阅读 5,673评论 0 1
  • 声明:本文讲解的实战内容,均仅用于学习交流,请勿用于任何商业用途! 一、前言 强烈建议:请在电脑的陪同下,阅读本文...
    Bruce_Szh阅读 14,382评论 6 28
  • 1.感谢妈妈今天身体不适还坚持陪我带娃去上早教课,谢谢,谢谢,谢谢! 2.感谢妈妈每天对我叨叨,无论事无大小,您都...
    晓栋Mona阅读 1,355评论 0 0

友情链接更多精彩内容