第一个简单的python爬虫:爬取ATP男子网球世界排名
来源:互联网 发布:叶子老师沪江辞职知乎 编辑:程序博客网 时间:2024/05/01 06:50
背景:
作为一个网球爱好者,平时也特别关注各大满贯赛事,初学python爬虫,所以想通过网络爬虫爬取一下最新的ATP排名。
设计:
网页选取:由于大部分排名网站都是动态网页,有JS代码,所以网站的筛选很重要,浏览了许多网站的源码,发现http://www.8tennis.com/比较符合要求,所以选取了http://www.8tennis.com/rank-atp/页面作为URL来源。
函数一:getHTMLText,主要用于与URL界面建立连接,用到了request库。
函数二:fillUnivListMan,主要用于从URL界面获取列表,用到了beautifulsoup库。
主要问题是在<table>标签的识别上由于html代码中有多个<table>标签,经过对比之后发现cellspacing属性是不同的,故加入attrs属性判断来获取特定的<table>标签。
函数三:printTennisListMan,主要用于打印排名列表,并对打印结果进行优化,使其更加美观。
结果展示:
后续考虑:对ATP男子网球运动员的地区进行一下统计,看看各地区的分布情况。
python代码如下:
#Tennis.pyimport requestsfrom bs4 import BeautifulSoupimport bs4def getHTMLText(url): try: r = requests.get(url, timeout=30) r.raise_for_status() r.encoding = r.apparent_encoding return r.text except: return ""def fillTennisListMan(ulist, html): soup = BeautifulSoup(html, "html.parser") for tr in soup.find('table',attrs={"cellspacing": 1}).children: if isinstance(tr, bs4.element.Tag): tds = tr('td') ulist.append([tds[0].string, tds[2].string, tds[3].string])def printTennisListMan(ulist, num): tplt = "{0:^10}\t{1:{3}^10}\t{2:^10}" for i in range(num): u=ulist[i] print(tplt.format(u[0],u[1],u[2],chr(12288))) def main(): uinfoman = [] urlman = 'http://www.8tennis.com/rank-atp/' print("ATP当前排名:") htmlman = getHTMLText(urlman) fillTennisListMan(uinfoman, htmlman) printTennisListMan(uinfoman, 21) # 21 univs main()
0 0
- 第一个简单的python爬虫:爬取ATP男子网球世界排名
- ATP的开学第一个月
- python爬虫----简单的图片爬取
- 第一个python爬虫(python3爬取百度百科1000个页面)
- 世界排名第一的笑话
- python第一个爬虫
- 第一个Python爬虫
- 第一个python爬虫
- 第一个python爬虫
- 第一个python爬虫
- Python--第一个爬虫
- 第一个Python爬虫,爬取某个新浪博客所有文章并保存为doc文档
- 【第一个爬虫】python爬取58同城企业信息并插入数据库
- 简单的python爬虫(爬取百度百科词条)
- python简单爬虫爬取队列的实现
- Python爬虫学习笔记(1):简单的图片爬取
- Craw 第一个很简单的爬虫
- 我的第一个Python爬虫
- eclipse下离线安装maven插件
- s5pv210烧写系统镜像步骤
- 1000
- Google SRE 概览
- Linux-cpu分析-vmstat
- 第一个简单的python爬虫:爬取ATP男子网球世界排名
- C++课程笔记(2)——Part1 Basic Facilities
- leetcode_53. Maximum Subarray
- Linux系统/etc/fstab文件损坏如何处理
- ttyUSB串口设备节点生成过程
- Tiny210v2( S5PV210 )平台下创建基本根文件系统
- hashCode与equal
- Linux-cpu分析-top
- DFS Deep First Search Tips