用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实现的各种排序算法代码
Mar 04 Python
Python实现合并字典的方法
Jul 07 Python
用python写扫雷游戏实例代码分享
May 27 Python
Python实现简单层次聚类算法以及可视化
Mar 18 Python
django的auth认证,authenticate和装饰器功能详解
Jul 25 Python
Python实现多线程/多进程的TCP服务器
Sep 03 Python
记一次pyinstaller打包pygame项目为exe的过程(带图片)
Mar 02 Python
python+gdal+遥感图像拼接(mosaic)的实例
Mar 10 Python
pandas apply多线程实现代码
Aug 17 Python
python 动态渲染 mysql 配置文件的示例
Nov 20 Python
python 实现aes256加密
Nov 27 Python
python垃圾回收机制原理分析
Apr 13 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
从零开始学YII2框架(二)通过 Composer 安装扩展插件
2014/08/20 PHP
PHP设计模式之适配器模式代码实例
2015/05/11 PHP
jQuery淡入淡出元素让其效果更为生动
2014/09/01 Javascript
JS中处理时间之setUTCMinutes()方法的使用
2015/06/12 Javascript
jQuery链式调用与show知识浅析
2016/05/11 Javascript
全面理解闭包机制
2016/07/11 Javascript
js 基础篇必看(点击事件轮播图的简单实现)
2016/08/20 Javascript
Vue-Router实现页面正在加载特效方法示例
2017/02/12 Javascript
js学习总结_轮播图之渐隐渐现版(实例讲解)
2017/07/17 Javascript
ES6中Array.copyWithin()函数的用法实例详解
2017/09/16 Javascript
Vue Router的懒加载路径的解决方法
2018/06/21 Javascript
Vue-router的使用和出现空白页,路由对象属性详解
2018/09/03 Javascript
vue中,在本地缓存中读写数据的方法
2018/09/21 Javascript
JS获取当前时间的年月日时分秒及时间的格式化的方法
2019/12/18 Javascript
[00:47]DOTA2荣耀之路6:天火,天火!
2018/05/30 DOTA
深入理解Django-Signals信号量
2019/02/19 Python
Python3 Tkinter选择路径功能的实现方法
2019/06/14 Python
python实现两个经纬度点之间的距离和方位角的方法
2019/07/05 Python
python操作excel让工作自动化
2019/08/09 Python
利用python实现汉字转拼音的2种方法
2019/08/12 Python
keras实现多种分类网络的方式
2020/06/11 Python
Pytorch实现将模型的所有参数的梯度清0
2020/06/24 Python
基于Python爬取股票数据过程详解
2020/10/21 Python
Python Selenium破解滑块验证码最新版(GEETEST95%以上通过率)
2021/01/29 Python
英国办公用品商店:Office Outlet
2018/04/04 全球购物
Clearly澳大利亚:购买眼镜、太阳镜和隐形眼镜
2018/04/26 全球购物
PHP如何与mysql建立链接
2013/05/05 面试题
销售类个人求职信范文
2013/09/25 职场文书
农民工工资发放承诺书
2014/03/31 职场文书
协议书范本
2014/04/23 职场文书
纪念九一八事变演讲稿1000字
2014/09/14 职场文书
金陵十三钗观后感
2015/06/04 职场文书
在人间读书笔记
2015/06/30 职场文书
《蓝鲸的眼睛》读后感5篇
2020/01/15 职场文书
关于的python五子棋的算法
2022/05/02 Python
win10如何更改appdata文件夹的默认位置?
2022/07/15 数码科技