python 入门实践之网页数据抓取
这个不错。正好入门学习使用。
1、其中用到 feedparser:
技巧:使用 Universal Feed Parser 驾驭 RSS
http://www.ibm.com/developerworks/cn/xml/x-tipufp.html
请访问 feedparser.org,详细了解 Universal Feed Parser,其中还包括一些下载资料和文档。
feedparser 实际下载地址:
http://code.google.com/p/feedparser/downloads/list
2、另外,需要将文件加上 utf-8 的 bom 头,需要用到 python 写入十六进制字符:
http://linux.byexamples.com/archives/478/python-writing-binary-file/
python 写入十六进制字符
file.write("\x5F\x9D\x3E")
file.close()
3、因为要调试,文件的打开模式改成 w 方便一些。
- import urllib
- import sys
- import re
- from feedparser import _getCharacterEncoding as enc
- class TagParser:
- def __init__(self, value):
- self.value = value
- def get(self, start, end):
- regx = re.compile(r'<' + start + r'.*?>.*</' + end + r'>')
- return re.findall(regx, self.value)
- if __name__ == "__main__":
- baseurl = "http://data.book.163.com/book/section/000BAfLU/000BAfLU"
- f = open("test_01.txt", "w")
- f.write("\xef\xbb\xbf")
- # for ndx in range(0, 56):
- for ndx in range(0, 1):
- url = baseurl + str(ndx) + ".html"
- print "get content from " + url
- src = urllib.urlopen(url)
- text = src.read()
- f1= open("tmp_" + str(ndx) + ".txt", "w")
- f1.write(text)
- f1.close()
- encoding = enc(src.headers, text)[0]
- tp = TagParser(text)
- title = tp.get('h1 class="f26s tC"', 'h1')
- article = tp.get('p class="ti2em"', 'p')
- t = re.sub(r'</.+>', '\n', title[0])
- t = re.sub(r'<.+>', '\n', t)
- data = t
- c = ""
- for p in article:
- pt = re.sub(r'</p>', '\n', p)
- c += pt
- c = re.sub(r'<.+>', '\n', c)
- data += c
- data = data.decode(encoding)
- f.write(data.encode('utf-8', 'ignore'))
- f.close()
python 入门实践之网页数据抓取的更多相关文章
- Python爬虫之-动态网页数据抓取
什么是AJAX: AJAX(Asynchronouse JavaScript And XML)异步JavaScript和XML.过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新.这意 ...
- 爬虫---selenium动态网页数据抓取
动态网页数据抓取 什么是AJAX: AJAX(Asynchronouse JavaScript And XML)异步JavaScript和XML.过在后台与服务器进行少量数据交换,Ajax 可以使网页 ...
- 吴裕雄--天生自然python学习笔记:WEB数据抓取与分析
Web 数据抓取技术具有非常巨大的应用需求及价值, 用 Python 在网页上收集数据,不仅抓取数据的操作简单, 而且其数据分析功能也十分强大. 通过 Python 的时lib 组件中的 urlpar ...
- 网页数据抓取工具,webscraper 最简单的数据抓取教程,人人都用得上
Web Scraper 是一款免费的,适用于普通用户(不需要专业 IT 技术的)的爬虫工具,可以方便的通过鼠标和简单配置获取你所想要数据.例如知乎回答列表.微博热门.微博评论.淘宝.天猫.亚马逊等电商 ...
- Android登录client,验证码的获取,网页数据抓取与解析,HttpWatch基本使用
大家好,我是M1ko.在互联网时代的今天,假设一个App不接入互联网.那么这个App一定不会有长时间的生命周期,因此Android网络编程是每个Android开发人员必备的技能.博主是在校大学生,自学 ...
- Python笔记(十一)——数据抓取例子
上班时候想看股票行情怎么办?试试这个小例子,5分钟拉去一次股票价格,预警: #coding=utf-8 import re import urllib2 import time import thre ...
- python python 入门学习之网页数据爬虫cnbeta文章保存
需求驱动学习的动力. 因为我们单位上不了外网所以读新闻是那么的痛苦,试着自己抓取网页保存下来,然后离线阅读.今天抓取的是cnbeta科技新闻,抓取地址是http://m.cnbeta.com/wap/ ...
- python python 入门学习之网页数据爬虫搜狐汽车数据库
自己从事的是汽车行业,所以首先要做的第一个程序是抓取搜狐汽车的销量数据库(http://db.auto.sohu.com/cxdata/): 数据库提供了07年至今的汽车月销量,每个车型对应一个xml ...
- 【Android 我的博客APP】1.抓取博客首页文章列表内容——网页数据抓取
打算做个自己在博客园的博客APP,首先要能访问首页获取数据获取首页的文章列表,第一步抓取博客首页文章列表内容的功能已实现,在小米2S上的效果图如下: 思路是:通过编写的工具类访问网页,获取页面源代码, ...
随机推荐
- nginx/apache/php隐藏http头部版本信息的实现方法
有时候我们需要隐藏我们的服务器版本信息,防止有心人士的研究,更安全,这里介绍下在nginx/apache/php中如何隐藏http头部版本信息的方法. nginx隐藏头部版本信息方法 编辑nginx. ...
- 【nginx运维基础(7)】常用PHP开源程序的NginxRewrite示例
在写伪静态的时候,可以先用一个打印$_GET的PHP文件来测试,并且一定注意浏览器缓存,另外正则里如果有"{}",正则要用双引号包起来 dedecms location / { r ...
- 怎样加快master数据库的写操作?分表原则!将表水平划分!或者添加写数据库的集群
1.怎样加快master数据库的写操作?分表原则!将表水平划分!减少表的锁定时间!!! 或者或者添加写数据库的集群!!!或者添加写数据库的集群!!! 2.既然分表了,就一定要注意分表的规则!要在代码层 ...
- Visual StudioTools for Unity 使用技巧2
在之前的博客介绍了 Visual Studio Tools for Unity的安装和使用. http://www.cnblogs.com/petto/p/3886811.html 其实这个工具还提供 ...
- Intellij idea使用postgresql 反向生成实例, 'Basic' attribute type should not be 'Object'
mapped type不能Object? 本人使用 intellij idea 15 , postgresql 9.4,在开发java ee . 在用 Hibernate时, 需要用数据库表反向生成实 ...
- 确认某端口占用情况并结束相应进程(Windows)
(1)确认某端口是否被占用 (2)通过查找对应的PID号,定位是哪一个进程在使用该端口 (3)通过PID号结束该进程 # 查找端口2000是否被占用C:\Users\tdcqma>netstat ...
- IOS把文件保存进沙盒目录
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES); NSS ...
- 修改tabbarcontroller选中图片及选中颜色
1.修改选中图片: UITabBarItem* item = [self.tabBarController.tabBar.items objectAtIndex:1]; //从0开始 item.s ...
- trackr: An AngularJS app with a Java 8 backend – Part II
该系列文章来自techdev The Frontend 在本系列的第一部分我们已经描述RESTful端建立在Java 8和Spring.这一部分将介绍我们的第一个用 AngularJS建造的客户端应用 ...
- 1934. Black Spot(spfa)
1934 水题 RE了N久 后来发现是无向图 #include <iostream> #include<cstring> #include<algorithm> # ...