这个不错。正好入门学习使用。

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 方便一些。

    1. import urllib
    2. import sys
    3. import re
    4. from feedparser import _getCharacterEncoding as enc
    5. class TagParser:
    6. def __init__(self, value):
    7. self.value = value
    8. def get(self, start, end):
    9. regx = re.compile(r'<' + start + r'.*?>.*</' + end + r'>')
    10. return re.findall(regx, self.value)
    11. if __name__ == "__main__":
    12. baseurl = "http://data.book.163.com/book/section/000BAfLU/000BAfLU"
    13. f = open("test_01.txt", "w")
    14. f.write("\xef\xbb\xbf")
    15. #    for ndx in range(0, 56):
    16. for ndx in range(0, 1):
    17. url = baseurl + str(ndx) + ".html"
    18. print "get content from " + url
    19. src = urllib.urlopen(url)
    20. text = src.read()
    21. f1= open("tmp_" + str(ndx) + ".txt", "w")
    22. f1.write(text)
    23. f1.close()
    24. encoding = enc(src.headers, text)[0]
    25. tp = TagParser(text)
    26. title = tp.get('h1 class="f26s tC"', 'h1')
    27. article = tp.get('p class="ti2em"', 'p')
    28. t = re.sub(r'</.+>', '\n', title[0])
    29. t = re.sub(r'<.+>', '\n', t)
    30. data = t
    31. c = ""
    32. for p in article:
    33. pt = re.sub(r'</p>', '\n', p)
    34. c += pt
    35. c = re.sub(r'<.+>', '\n', c)
    36. data += c
    37. data = data.decode(encoding)
    38. f.write(data.encode('utf-8', 'ignore'))
    39. f.close()

python 入门实践之网页数据抓取的更多相关文章

  1. Python爬虫之-动态网页数据抓取

    什么是AJAX: AJAX(Asynchronouse JavaScript And XML)异步JavaScript和XML.过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新.这意 ...

  2. 爬虫---selenium动态网页数据抓取

    动态网页数据抓取 什么是AJAX: AJAX(Asynchronouse JavaScript And XML)异步JavaScript和XML.过在后台与服务器进行少量数据交换,Ajax 可以使网页 ...

  3. 吴裕雄--天生自然python学习笔记:WEB数据抓取与分析

    Web 数据抓取技术具有非常巨大的应用需求及价值, 用 Python 在网页上收集数据,不仅抓取数据的操作简单, 而且其数据分析功能也十分强大. 通过 Python 的时lib 组件中的 urlpar ...

  4. 网页数据抓取工具,webscraper 最简单的数据抓取教程,人人都用得上

    Web Scraper 是一款免费的,适用于普通用户(不需要专业 IT 技术的)的爬虫工具,可以方便的通过鼠标和简单配置获取你所想要数据.例如知乎回答列表.微博热门.微博评论.淘宝.天猫.亚马逊等电商 ...

  5. Android登录client,验证码的获取,网页数据抓取与解析,HttpWatch基本使用

    大家好,我是M1ko.在互联网时代的今天,假设一个App不接入互联网.那么这个App一定不会有长时间的生命周期,因此Android网络编程是每个Android开发人员必备的技能.博主是在校大学生,自学 ...

  6. Python笔记(十一)——数据抓取例子

    上班时候想看股票行情怎么办?试试这个小例子,5分钟拉去一次股票价格,预警: #coding=utf-8 import re import urllib2 import time import thre ...

  7. python python 入门学习之网页数据爬虫cnbeta文章保存

    需求驱动学习的动力. 因为我们单位上不了外网所以读新闻是那么的痛苦,试着自己抓取网页保存下来,然后离线阅读.今天抓取的是cnbeta科技新闻,抓取地址是http://m.cnbeta.com/wap/ ...

  8. python python 入门学习之网页数据爬虫搜狐汽车数据库

    自己从事的是汽车行业,所以首先要做的第一个程序是抓取搜狐汽车的销量数据库(http://db.auto.sohu.com/cxdata/): 数据库提供了07年至今的汽车月销量,每个车型对应一个xml ...

  9. 【Android 我的博客APP】1.抓取博客首页文章列表内容——网页数据抓取

    打算做个自己在博客园的博客APP,首先要能访问首页获取数据获取首页的文章列表,第一步抓取博客首页文章列表内容的功能已实现,在小米2S上的效果图如下: 思路是:通过编写的工具类访问网页,获取页面源代码, ...

随机推荐

  1. 朴素贝叶斯方法(Naive Bayes Method)

        朴素贝叶斯是一种很简单的分类方法,之所以称之为朴素,是因为它有着非常强的前提条件-其所有特征都是相互独立的,是一种典型的生成学习算法.所谓生成学习算法,是指由训练数据学习联合概率分布P(X,Y ...

  2. http报文在网络中是明文传输的,所以不安全。HTtp必然来临

    HTTP数据在网络中裸奔 HTTP明文协议的缺陷,是导致数据泄露.数据篡改.流量劫持.钓鱼攻击等安全问题的重要原因.HTTP协议无法加密数据,所有通信数据都在网络中明文“裸奔”.通过网络的嗅探设备及一 ...

  3. CentOS环境下Java开发环境的搭建

    ------------------------------------------------------- 安装Jdk 1.查询系统默认JDK CentOS系统默认会安装JDK,一般建议卸载后安装 ...

  4. Java API ——Collection集合类 & Iterator接口

    对象数组举例: 学生类: package itcast01; /** * Created by gao on 15-12-9. */ public class Student { private St ...

  5. <<c 和指针 >> 部分笔记。

    最近竟然对指针有些迷惑了,分不清指针的指向.废话少说,复习.(下面内容来自<<c和指针>>) =指针 ==内存和地址 尽管一个字包含了4个字节,它仍然只有一个地址.至于是最左边 ...

  6. [转载]浅析Java中的final关键字

    浅析Java中的final关键字 谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字.另外,Java中的String类就是一个final类,那么今天我们就来 ...

  7. 【C#设计模式——创建型模式】抽象工厂模式

    抽象工厂模式比工厂模式具有更高层次的抽象性.当要返回一系列相关类中的某一个,而每个类都能根据需要返回不同的对象时,可以选择这种模式.直接进入示例. 示例描述:完成花园的规划,多种花园种类,每个里面多种 ...

  8. HDU 3949 XOR(高斯消元)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3949 题意:给出一个长度为n的数列A.选出A的所有子集(除空集外)进行抑或得到2^n-1个数字,去重排 ...

  9. Ubuntu使用总结

    错误 鼠标闪烁解决 系统设置->显示—>未知显示器->关闭->应用->选择当前配置 提示sudo: unable to resolve host ,亦即无法解析主机. 原 ...

  10. 面试题_17_to_30_数据类型和 Java 基础面试问题

    17)Java 中应该使用什么数据类型来代表价格?(答案)如果不是特别关心内存和性能的话,使用BigDecimal,否则使用预定义精度的 double 类型. 18)怎么将 byte 转换为 Stri ...