用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之用Python计算
Sep 12 Python
Python实现二分查找算法实例
May 26 Python
使用python爬虫实现网络股票信息爬取的demo
Jan 05 Python
Python读取视频的两种方法(imageio和cv2)
Apr 15 Python
对Python中内置异常层次结构详解
Oct 18 Python
python TF-IDF算法实现文本关键词提取
May 29 Python
python傅里叶变换FFT绘制频谱图
Jul 19 Python
Pycharm+Python工程,引用子模块的实现
Mar 09 Python
Selenium基于PIL实现拼接滚动截图
Apr 10 Python
Python使用windows设置定时执行脚本
Nov 12 Python
python中reload重载实例用法
Dec 15 Python
Python趣味爬虫之用Python实现智慧校园一键评教
May 28 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
Terran魔法科技
2020/03/14 星际争霸
php中使用addslashes函数报错问题的解决方法
2013/02/06 PHP
利用PHP如何实现Socket服务器
2015/09/23 PHP
javascript操作文本框readOnly
2007/05/15 Javascript
jquery ztree实现下拉树形框使用到了json数据
2014/05/14 Javascript
javascript属性访问表达式用法分析
2015/04/25 Javascript
很酷的星级评分系统原生JS实现
2016/08/25 Javascript
微信小程序 video详解及简单实例
2017/01/16 Javascript
JS沙箱模式实例分析
2017/09/04 Javascript
详解Vue中watch的高级用法
2018/05/02 Javascript
详解在Vue中使用TypeScript的一些思考(实践)
2018/07/06 Javascript
使用Vue.set()方法实现响应式修改数组数据步骤
2019/11/09 Javascript
jquery实现图片无缝滚动 蒙版遮蔽效果
2020/01/11 jQuery
[40:04]Secret vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.23
2019/09/05 DOTA
python命令行参数sys.argv使用示例
2014/01/28 Python
python简单实现获取当前时间
2016/08/27 Python
Python实现KNN邻近算法
2021/01/28 Python
python3 requests中使用ip代理池随机生成ip的实例
2018/05/07 Python
python模糊图片过滤的方法
2018/12/14 Python
python3实现表白神器
2019/04/09 Python
python格式化输出保留2位小数的实现方法
2019/07/02 Python
学习和使用python的13个理由
2019/07/30 Python
python可视化篇之流式数据监控的实现
2019/08/07 Python
使用python实现对元素的长截图功能
2019/11/14 Python
pymysql的简单封装代码实例
2020/01/08 Python
python 函数嵌套及多函数共同运行知识点讲解
2020/03/03 Python
游戏商店:Eneba
2020/04/25 全球购物
在校生钳工实习自我鉴定
2013/09/19 职场文书
制药工程专业毕业生推荐信
2013/12/24 职场文书
金融管理专业毕业生求职信
2014/03/12 职场文书
大学迎新生标语
2014/10/06 职场文书
专职安全员岗位职责
2015/04/11 职场文书
2015民办小学年度工作总结
2015/05/26 职场文书
党员证明信
2015/06/19 职场文书
关于springboot 配置date字段返回时间戳的问题
2021/07/25 Java/Android
vue特效之翻牌动画
2022/04/20 Vue.js