用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连接MySQL、MongoDB、Redis、memcache等数据库的方法
Nov 15 Python
Python比较文件夹比另一同名文件夹多出的文件并复制出来的方法
Mar 05 Python
Django的数据模型访问多对多键值的方法
Jul 21 Python
一个基于flask的web应用诞生 组织结构调整(7)
Apr 11 Python
CentOS 7 安装python3.7.1的方法及注意事项
Nov 01 Python
Python3.5 处理文本txt,删除不需要的行方法
Dec 10 Python
DJANGO-URL反向解析REVERSE实例讲解
Oct 25 Python
python  ceiling divide 除法向上取整(或小数向上取整)的实例
Dec 27 Python
Django Haystack 全文检索与关键词高亮的实现
Feb 17 Python
python基本算法之实现归并排序(Merge sort)
Sep 01 Python
基于Python实现全自动下载抖音视频
Nov 06 Python
TensorFlow低版本代码自动升级为1.0版本
Feb 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中魔术变量__METHOD__与__FUNCTION__的区别
2014/09/29 PHP
详解WordPress中简码格式标签编写的基本方法
2015/12/22 PHP
PHP遍历目录文件的常用方法小结
2017/02/03 PHP
JavaScript 对话框和状态栏使用说明
2009/10/25 Javascript
ASP.NET MVC中EasyUI的datagrid跨域调用实现代码
2012/03/14 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(二)人物行走的实现
2013/01/23 Javascript
node.js中的buffer.Buffer.isEncoding方法使用说明
2014/12/14 Javascript
jQuery实现企业网站横幅焦点图切换功能实例
2015/04/30 Javascript
关于Jquery中的bind(),on()绑定事件方式总结
2016/10/26 Javascript
webpack配置的最佳实践分享
2017/04/21 Javascript
详解Node中导入模块require和import的区别
2017/08/11 Javascript
使用Vuex实现一个笔记应用的方法
2018/03/13 Javascript
node 解析图片二维码的内容代码实例
2019/09/11 Javascript
[01:00]选手抵达华西村 整装待发备战2016国际邀请赛中国区预选赛
2016/06/25 DOTA
[01:11]回顾历届DOTA2国际邀请赛中国区预选赛
2017/06/26 DOTA
[00:32]2018DOTA2亚洲邀请赛Liquid出场
2018/04/03 DOTA
[42:32]Secret vs Optic 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
10个易被忽视但应掌握的Python基本用法
2015/04/01 Python
Diango + uwsgi + nginx项目部署的全过程(可外网访问)
2018/04/22 Python
python寻找list中最大值、最小值并返回其所在位置的方法
2018/06/27 Python
深度学习入门之Pytorch 数据增强的实现
2020/02/26 Python
Pandas替换及部分替换(replace)实现流程详解
2020/10/12 Python
CSS3的Flexbox布局的简明入门指南
2016/04/08 HTML / CSS
html5 http的轮询和Websocket原理
2018/10/19 HTML / CSS
英国汽车座椅和婴儿车购物网站:Uber Kids
2017/04/19 全球购物
Foot Locker德国官方网站:美国运动服和鞋类零售商
2018/11/01 全球购物
公司业务主管岗位职责
2013/12/07 职场文书
物业保安主管岗位职责
2013/12/25 职场文书
学习十八大报告感言
2014/02/04 职场文书
建筑设计专业求职自我评价
2014/03/02 职场文书
2014年重阳节敬老活动方案
2014/09/16 职场文书
2014向国旗敬礼网上签名活动总结
2014/09/27 职场文书
房屋所有权证明
2015/06/19 职场文书
2015年小学总务工作总结
2015/07/21 职场文书
先进教师个人主要事迹材料
2015/11/03 职场文书
Javascript中Microtask和Macrotask鲜为人知的知识点
2022/04/02 Javascript