用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中的socket模块使用代理实例
May 29 Python
Python获取电脑硬件信息及状态的实现方法
Aug 29 Python
python通过pil模块将raw图片转换成png图片的方法
Mar 16 Python
Python中设置变量访问权限的方法
Apr 27 Python
Python字符串转换成浮点数函数分享
Jul 24 Python
python3中bytes和string之间的互相转换
Feb 09 Python
Python实现将Excel转换成为image的方法
Oct 23 Python
python 对任意数据和曲线进行拟合并求出函数表达式的三种解决方案
Feb 18 Python
pygame实现弹球游戏
Apr 14 Python
基于python实现ROC曲线绘制广场解析
Jun 28 Python
Python自带的IDE在哪里
Jul 01 Python
Python配置pip国内镜像源的实现
Aug 20 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
php数组索引的Key加引号和不加引号的区别
2014/08/19 PHP
php中session定期自动清理的方法
2015/11/12 PHP
PHP读取PPT文件的方法
2015/12/10 PHP
表单元素与非表单元素刷新区别详细解析
2013/11/06 Javascript
写JQuery插件的基本知识
2013/11/25 Javascript
无限树Jquery插件zTree的常用功能特性总结
2014/09/11 Javascript
jquery得到iframe src属性值的方法
2014/09/25 Javascript
jQuery+slidereveal实现的面板滑动侧边展出效果
2015/03/14 Javascript
使用DNode实现php和nodejs之间通信的简单实例
2015/07/06 NodeJs
AngularJS基础 ng-keyup 指令简单示例
2016/08/02 Javascript
AngularJS 自定义指令详解及示例代码
2016/08/17 Javascript
JS 实现Base64编码与解码实例详解
2016/11/07 Javascript
Bootstrap基本样式学习笔记之标签(5)
2016/12/07 Javascript
jquery dataTable 后台加载数据并分页实例代码
2017/06/07 jQuery
JS 60秒后重新发送验证码的实例讲解
2017/07/26 Javascript
vue 使用vue-i18n做全局中英文切换的方法
2018/10/29 Javascript
vue实现在v-html的html字符串中绑定事件
2019/10/28 Javascript
Javascript var变量删除原理及实现
2020/08/26 Javascript
再也不怕 JavaScript 报错了,怎么看怎么处理都在这儿
2020/12/09 Javascript
python抓取文件夹的所有文件
2018/02/27 Python
通过python将大量文件按修改时间分类的方法
2018/10/17 Python
python中退出多层循环的方法
2018/11/27 Python
python实时检测键盘输入函数的示例
2019/07/17 Python
python+opencv实现车牌定位功能(实例代码)
2019/12/24 Python
Python按照list dict key进行排序过程解析
2020/04/04 Python
Django静态文件加载失败解决方案
2020/08/26 Python
波兰最大的儿童服装连锁店之一:5.10.15.
2018/02/11 全球购物
屈臣氏菲律宾官网:Watsons菲律宾
2020/06/30 全球购物
大学在校生求职信范文
2013/11/21 职场文书
测绘工程个人的自我评价
2013/11/23 职场文书
会计专业大学生职业生涯规划范文
2014/01/11 职场文书
《她是我的朋友》教学反思
2014/04/26 职场文书
vue实现可以快进后退的跑马灯组件
2022/04/08 Vue.js
苹果可能正在打击不进行更新的 App
2022/04/24 数码科技
Python 一键获取电脑浏览器的账号密码
2022/05/11 Python
MySQL中order by的执行过程
2022/06/05 MySQL