用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抓取网页正文的源码
Jun 11 Python
在Python编程过程中用单元测试法调试代码的介绍
Apr 02 Python
Python简单调用MySQL存储过程并获得返回值的方法
Jul 20 Python
Python实现 多进程导入CSV数据到 MySQL
Feb 26 Python
pandas DataFrame 交集并集补集的实现
Jun 24 Python
你还在@微信官方?聊聊Python生成你想要的微信头像
Sep 25 Python
python 实现矩阵填充0的例子
Nov 29 Python
Pytorch 保存模型生成图片方式
Jan 10 Python
python误差棒图errorbar()函数实例解析
Feb 11 Python
python datetime处理时间小结
Apr 16 Python
python 比较字典value的最大值的几种方法
Apr 17 Python
详解如何修改python中字典的键和值
Sep 29 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防止恶意刷新与刷票的方法
2014/11/21 PHP
php自动提交表单的方法(基于fsockopen与curl)
2016/05/09 PHP
Yii框架核心组件类实例详解
2019/08/06 PHP
js确定对象类型方法
2012/03/30 Javascript
浏览器解析js生成的html出现样式问题的解决方法
2012/04/16 Javascript
js网页中的(运行代码)功能实现思路
2013/02/04 Javascript
验证手机号码的JS方法分享
2013/09/10 Javascript
Vue.js组件tree实现无限级树形菜单
2016/12/02 Javascript
基于vue2实现左滑删除功能
2017/11/28 Javascript
利用jQuery+localStorage实现一个简易的计时器示例代码
2017/12/25 jQuery
Angular4.x通过路由守卫进行路由重定向实现根据条件跳转到相应的页面(推荐)
2018/05/10 Javascript
bootstrap里bootstrap动态加载下拉框的实例讲解
2018/08/10 Javascript
vue添加axios,并且指定baseurl的方法
2018/09/19 Javascript
详解使用Nuxt.js快速搭建服务端渲染(SSR)应用
2019/03/13 Javascript
vue子路由跳转实现tab选项卡
2019/07/24 Javascript
vue实现列表滚动的过渡动画
2020/06/29 Javascript
Python批量按比例缩小图片脚本分享
2015/05/21 Python
pycharm中连接mysql数据库的步骤详解
2017/05/02 Python
python 判断是否为正小数和正整数的实例
2017/07/23 Python
Python实现定时备份mysql数据库并把备份数据库邮件发送
2018/03/08 Python
让Django支持Sql Server作后端数据库的方法
2018/05/29 Python
tensorflow 输出权重到csv或txt的实例
2018/06/14 Python
Python 创建新文件时避免覆盖已有的同名文件的解决方法
2018/11/16 Python
Django 通过JS实现ajax过程详解
2019/07/30 Python
Python+OpenCV图像处理——实现直线检测
2020/10/23 Python
html5页面结构_动力节点Java学院整理
2017/07/10 HTML / CSS
Html5饼图绘制实现统计图的方法
2020/08/05 HTML / CSS
Bjorn Borg官方网上商店:国际运动时尚品牌
2016/08/27 全球购物
英国银首饰公司:e&e Jewellery
2021/02/11 全球购物
文明工地标语
2014/06/16 职场文书
党政领导班子四风问题对照检查材料思想汇报
2014/10/02 职场文书
黑白记忆观后感
2015/06/18 职场文书
文明和谐家庭事迹材料(2016精选版)
2016/02/29 职场文书
公司趣味运动会开幕词
2016/03/04 职场文书
标会主持词应该怎么写?
2019/08/15 职场文书
详解SQL报错盲注
2022/07/23 SQL Server