用Python程序抓取网页的HTML信息的一个小实例


Posted in Python onMay 02, 2015

抓取网页数据的思路有好多种,一般有:直接代码请求http、模拟浏览器请求数据(通常需要登录验证)、控制浏览器实现数据抓取等。这篇不考虑复杂情况,放一个读取简单网页数据的小例子:
目标数据

将ittf网站上这个页面上所有这些选手的超链接保存下来。

用Python程序抓取网页的HTML信息的一个小实例

数据请求

真的很喜欢符合人类思维的库,比如requests,如果是要直接拿网页文本,一句话搞定:

doc = requests.get(url).text

解析html获得数据

以beautifulsoup为例,包含获取标签、链接,以及根据html层次结构遍历等方法。参考见这里。下面这个片段,从ittf网站上获取指定页面上指定位置的链接。

url = 'http://www.ittf.com/ittf_ranking/WR_Table_3_A2.asp?Age_category_1=&Age_category_2=&Age_category_3=&Age_category_4=&Age_category_5=&Category=100W&Cont=&Country=&Gender=W&Month1=4&Year1=2015&s_Player_Name=&Formv_WR_Table_3_Page='+str(page)
doc = requests.get(url).text
soup = BeautifulSoup(doc)
atags = soup.find_all('a')
rank_link_pre = 'http://www.ittf.com/ittf_ranking/'

mlfile = open(linkfile,'a')
for atag in atags:
  #print atag
  if atag!=None and atag.get('href') != None:
    if "WR_Table_3_A2_Details.asp" in atag['href']:
      link = rank_link_pre + atag['href']
      links.append(link)
      mlfile.write(link+'\n')
      print 'fetch link: '+link
mlfile.close()
Python 相关文章推荐
用Python的Tornado框架结合memcached页面改善博客性能
Apr 24 Python
Python网络编程基于多线程实现多用户全双工聊天功能示例
Apr 10 Python
python创建子类的方法分析
Nov 28 Python
简单了解python元组tuple相关原理
Dec 02 Python
使用python 对验证码图片进行降噪处理
Dec 18 Python
python 画条形图(柱状图)实例
Apr 24 Python
python中什么是面向对象
Jun 11 Python
浅谈keras中loss与val_loss的关系
Jun 22 Python
Python数据可视化实现漏斗图过程图解
Jul 20 Python
浅析pandas随机排列与随机抽样
Jan 22 Python
Python 图片处理库exifread详解
Feb 25 Python
使用python绘制分组对比柱状图
Apr 21 Python
在Mac OS上部署Nginx和FastCGI以及Flask框架的教程
May 02 #Python
在Python的Django框架中用流响应生成CSV文件的教程
May 02 #Python
详细解读Python中的__init__()方法
May 02 #Python
举例讲解Python的Tornado框架实现数据可视化的教程
May 02 #Python
Python的Bottle框架中返回静态文件和JSON对象的方法
Apr 30 #Python
使用Python编写提取日志中的中文的脚本的方法
Apr 30 #Python
简单的连接MySQL与Python的Bottle框架的方法
Apr 30 #Python
You might like
global.php
2006/12/09 PHP
php批量更改数据库表前缀实现方法
2013/10/26 PHP
Vagrant(WSL)+PHPStorm+Xdebu 断点调试环境搭建
2019/12/13 PHP
JavaScript加密解密7种方法总结分析
2007/10/07 Javascript
在网页里看flash的trace数据的js类
2009/01/10 Javascript
javascript 进度条 实现代码
2009/07/30 Javascript
关于js中alert弹出窗口文本换行问题简单详细说明
2012/12/11 Javascript
点击弹出层效果&弹出窗口后网页背景变暗效果的实现代码
2014/02/10 Javascript
Javascript高级技巧分享
2014/02/25 Javascript
javascript调试之DOM断点调试法使用技巧分享
2014/04/15 Javascript
深入理解JavaScript系列(31):设计模式之代理模式详解
2015/03/03 Javascript
JQuery统计input和textarea文字输入数量(代码分享)
2016/12/29 Javascript
详解基于webpack和vue.js搭建开发环境
2017/04/05 Javascript
JS从非数组对象转数组的方法小结
2018/03/26 Javascript
React Native基础入门之调试React Native应用的一小步
2018/07/02 Javascript
微信小程序实现折线图的示例代码
2019/06/07 Javascript
利用JavaScript模拟京东按键输入功能
2020/12/01 Javascript
[02:28]DOTA2英雄基础教程 灰烬之灵
2013/12/19 DOTA
Python语言实现获取主机名根据端口杀死进程
2016/03/31 Python
python设计模式大全
2016/06/27 Python
python使用selenium实现批量文件下载
2019/03/11 Python
使用Filter过滤python中的日志输出的实现方法
2019/07/17 Python
python通过http下载文件的方法详解
2019/07/26 Python
详解Python在使用JSON时需要注意的编码问题
2019/12/06 Python
kafka监控获取指定topic的消息总量示例
2019/12/23 Python
Python Socketserver实现FTP文件上传下载代码实例
2020/03/27 Python
python 通过文件夹导入包的操作
2020/06/01 Python
HTML5对比HTML4的主要改变和改进总结
2016/05/27 HTML / CSS
YOOX美国官方网站:全球著名的多品牌时尚网络概念店
2016/09/11 全球购物
Glamest意大利:女性在线奢侈品零售店
2019/04/28 全球购物
什么是servlet链?
2014/07/13 面试题
体育教育毕业生自荐信
2014/06/29 职场文书
2014年城市管理工作总结
2014/12/02 职场文书
2015应届毕业生自荐信范文
2015/03/05 职场文书
医者仁心观后感
2015/06/17 职场文书
三严三实学习心得体会(精选N篇)
2016/01/05 职场文书