用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 相关文章推荐
解决windows下Sublime Text 2 运行 PyQt 不显示的方法分享
Jun 18 Python
python求crc32值的方法
Oct 05 Python
python实现在windows下操作word的方法
Apr 28 Python
python中threading超线程用法实例分析
May 16 Python
python实现颜色空间转换程序(Tkinter)
Dec 31 Python
python结合shell查询google关键词排名的实现代码
Feb 27 Python
Python实现TCP/IP协议下的端口转发及重定向示例
Jun 14 Python
基于python select.select模块通信的实例讲解
Sep 21 Python
Python中利用aiohttp制作异步爬虫及简单应用
Nov 29 Python
Python+selenium点击网页上指定坐标的实例
Jul 05 Python
Python的互斥锁与信号量详解
Sep 12 Python
聊一聊python常用的编程模块
May 14 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.MVC的模板标签系统(五)
2006/09/05 PHP
PHP手机号码归属地查询代码(API接口/mysql)
2012/09/04 PHP
php根据指定位置和长度获得子字符串的方法
2015/03/17 PHP
PHP实现的增强性mhash函数
2015/05/27 PHP
利用PHP判断是手机移动端还是PC端访问的函数示例
2017/12/14 PHP
php使用redis的有序集合zset实现延迟队列应用示例
2020/02/20 PHP
学习ExtJS table布局
2009/10/08 Javascript
兼容ie、firefox的图片自动缩放的css跟js代码分享
2013/08/12 Javascript
js实现省市联动效果的简单实例
2014/02/10 Javascript
jQuery焦点图轮播特效代码分享(3款)
2015/09/05 Javascript
分步解析JavaScript实现tab选项卡自动切换功能
2016/01/25 Javascript
Zabbix添加Node.js监控的方法
2016/10/20 Javascript
Node.js pipe实现源码解析
2017/08/12 Javascript
vue router仿天猫底部导航栏功能
2017/10/18 Javascript
vue使用ElementUI时导航栏默认展开功能的实现
2018/07/04 Javascript
JavaScript代码模拟鼠标自动点击事件示例
2020/08/07 Javascript
js实现简单商品筛选功能
2021/02/02 Javascript
Python使用自带的ConfigParser模块读写ini配置文件
2016/06/26 Python
Python在信息学竞赛中的运用及Python的基本用法(详解)
2017/08/15 Python
python爬虫之模拟登陆csdn的实例代码
2018/05/18 Python
Python 新建文件夹与复制文件夹内所有内容的方法
2018/10/27 Python
python判断一个数是否能被另一个整数整除的实例
2018/12/12 Python
python批量爬取下载抖音视频
2019/06/17 Python
Python用input输入列表的实例代码
2020/02/07 Python
英国和世界各地预订便宜的酒店:LateRooms.com
2019/05/05 全球购物
俄罗斯花园种植材料批发和零售网上商店:Беккер
2019/07/22 全球购物
文明和谐家庭事迹材料
2014/05/18 职场文书
三严三实对照检查材料范文
2014/09/23 职场文书
一年级班主任工作总结2014
2014/11/08 职场文书
卫生保健工作总结2015
2015/05/18 职场文书
初二英语教学反思
2016/02/15 职场文书
《跨越海峡的生命桥》教学反思
2016/02/18 职场文书
MySQL基础(二)
2021/04/05 MySQL
90行Python代码开发个人云盘应用
2021/04/20 Python
MySQL生成千万测试数据以及遇到的问题
2022/08/05 MySQL
Python编写车票订购系统 Python实现快递收费系统
2022/08/14 Python