用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实现方法
Nov 18 Python
Python多线程实现同步的四种方式
May 02 Python
Python语言描述机器学习之Logistic回归算法
Dec 21 Python
教你用 Python 实现微信跳一跳(Mac+iOS版)
Jan 04 Python
python微信公众号开发简单流程
Mar 23 Python
在Windows中设置Python环境变量的实例讲解
Apr 28 Python
python+numpy+matplotalib实现梯度下降法
Aug 31 Python
Python Pandas实现数据分组求平均值并填充nan的示例
Jul 04 Python
基于python框架Scrapy爬取自己的博客内容过程详解
Aug 05 Python
pytorch 获取层权重,对特定层注入hook, 提取中间层输出的方法
Aug 17 Python
pytorch fine-tune 预训练的模型操作
Jun 03 Python
Python写情书? 10行代码展示如何把情书写在她的照片里
Apr 21 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生成shtml类用法实例
2014/12/09 PHP
laravel中命名路由的使用方法
2017/02/24 PHP
解决laravel中日志权限莫名变成了root的问题
2019/10/17 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
2019/11/23 PHP
有道JavaScript监听浏览器的问题
2010/06/23 Javascript
Javascript Request获取请求参数如何实现
2012/11/28 Javascript
jQuery判断密码强度实现思路及代码
2013/04/24 Javascript
jquery实现不同大小浏览器使用不同的css样式表的方法
2014/04/02 Javascript
jQuery Easyui学习教程之实现datagrid在没有数据时显示相关提示内容
2016/07/09 Javascript
JS监听微信、支付宝等移动app及浏览器的返回、后退、上一页按钮的事件方法
2016/08/05 Javascript
前端JS面试中常见的算法问题总结
2016/12/23 Javascript
vue如何实现observer和watcher源码解析
2017/03/09 Javascript
jquery mobile实现可折叠的导航按钮
2017/03/11 Javascript
使用JS实现图片轮播的实例(前后首尾相接)
2017/09/21 Javascript
Vue 实现从文件中获取文本信息的方法详解
2019/10/16 Javascript
Vue实现图片轮播组件思路及实例解析
2020/05/11 Javascript
django静态文件加载的方法
2018/05/20 Python
Python+selenium 获取浏览器窗口坐标、句柄的方法
2018/10/14 Python
对python:print打印时加u的含义详解
2018/12/15 Python
Python实战之制作天气查询软件
2019/05/14 Python
pyqt5 使用label控件实时显示时间的实例
2019/06/14 Python
python实现得到当前登录用户信息的方法
2019/06/21 Python
python模块常用用法实例详解
2019/10/17 Python
wxPython实现整点报时
2019/11/18 Python
pandas分批读取大数据集教程
2020/06/06 Python
python爬取股票最新数据并用excel绘制树状图的示例
2021/03/01 Python
缅甸网上购物:Shop.com.mm
2017/12/05 全球购物
澳大利亚制造的蜡烛和扩散器:Glasshouse Fragrances
2018/05/20 全球购物
华为C++笔试题
2014/08/05 面试题
学生处主任岗位职责
2013/12/01 职场文书
审计班子对照检查材料
2014/08/27 职场文书
2014年小学教师工作自我评价
2014/09/22 职场文书
运动会班级口号霸气押韵
2015/12/24 职场文书
Nginx优化服务之网页压缩的实现方法
2021/03/31 Servers
pytorch 如何把图像数据集进行划分成train,test和val
2021/05/31 Python
世界十大儿童漫画书排名,法国国宝漫画排第五,第二是轰动日本连环
2022/03/18 欧美动漫