t*****n 发帖数: 1589 | 1 下载了大量html文件,问下怎么提出中文并分别保存,多谢了 |
h*******s 发帖数: 8454 | 2 可以用python
用lxml来处理dom
我上个月写过一个网站文章下载合并的script,就用它来着
【在 t*****n 的大作中提到】 : 下载了大量html文件,问下怎么提出中文并分别保存,多谢了
|
a9 发帖数: 21638 | 3 如果是要提取所有的中文字符,就根据其编码(utf-8?gbk?gb2312)来看。
一般中文字符是双字节或多字节(utf8),第一个字节大于128.
【在 t*****n 的大作中提到】 : 下载了大量html文件,问下怎么提出中文并分别保存,多谢了
|
t*****n 发帖数: 1589 | 4 下载了大量html文件,问下怎么提出中文并分别保存,多谢了 |
h*******s 发帖数: 8454 | 5 可以用python
用lxml来处理dom
我上个月写过一个网站文章下载合并的script,就用它来着
【在 t*****n 的大作中提到】 : 下载了大量html文件,问下怎么提出中文并分别保存,多谢了
|
a9 发帖数: 21638 | 6 如果是要提取所有的中文字符,就根据其编码(utf-8?gbk?gb2312)来看。
一般中文字符是双字节或多字节(utf8),第一个字节大于128.
【在 t*****n 的大作中提到】 : 下载了大量html文件,问下怎么提出中文并分别保存,多谢了
|
t*****n 发帖数: 1589 | 7 then how? can u further explain thx
【在 a9 的大作中提到】 : 如果是要提取所有的中文字符,就根据其编码(utf-8?gbk?gb2312)来看。 : 一般中文字符是双字节或多字节(utf8),第一个字节大于128.
|
L***n 发帖数: 6727 | 8 各网站通用很难吧,对单个特定网站做简单点
【在 h*******s 的大作中提到】 : 可以用python : 用lxml来处理dom : 我上个月写过一个网站文章下载合并的script,就用它来着
|
t****t 发帖数: 6806 | 9 你是哪部分不懂? 不能指望别人手把手教/替你写吧.
【在 t*****n 的大作中提到】 : then how? can u further explain thx
|
x****u 发帖数: 44466 | 10 中文就那么几种编码,处理起来简单的很。
先查html header,如果说明了直接用,没说明的话,依次转换成gbk,utf-8,看看哪
个错误率低就用哪个。
【在 L***n 的大作中提到】 : 各网站通用很难吧,对单个特定网站做简单点
|
|
|
L***n 发帖数: 6727 | 11 对,编码容易处理,但是你要吧内容提出来就要parse html了,就算用dom模型,也不
是trivial的吧。我也试过,没有什么通用的办法。
【在 x****u 的大作中提到】 : 中文就那么几种编码,处理起来简单的很。 : 先查html header,如果说明了直接用,没说明的话,依次转换成gbk,utf-8,看看哪 : 个错误率低就用哪个。
|
x****u 发帖数: 44466 | 12 提取中文容易啊,把尖括号以外的东西搞出来,然后一一检查。
【在 L***n 的大作中提到】 : 对,编码容易处理,但是你要吧内容提出来就要parse html了,就算用dom模型,也不 : 是trivial的吧。我也试过,没有什么通用的办法。
|
t*****n 发帖数: 1589 | 13 我得好好research以下,我没有编程基础
【在 t****t 的大作中提到】 : 你是哪部分不懂? 不能指望别人手把手教/替你写吧.
|
t*****n 发帖数: 1589 | 14 请问怎么检查?
【在 x****u 的大作中提到】 : 提取中文容易啊,把尖括号以外的东西搞出来,然后一一检查。
|
h*******s 发帖数: 8454 | 15 嗯 就写了一个专门搞西西河的,因为当时有人求下载一个200多页的高楼。。。
各种网站通吃太难了,压根都没这想法。。。
【在 L***n 的大作中提到】 : 各网站通用很难吧,对单个特定网站做简单点
|
a9 发帖数: 21638 | 16 如果是这样,那应该说楼主的问题问的不对。
应该问如何提取网页内容,而不是说提取中文。呵呵
【在 h*******s 的大作中提到】 : 嗯 就写了一个专门搞西西河的,因为当时有人求下载一个200多页的高楼。。。 : 各种网站通吃太难了,压根都没这想法。。。
|
L***n 发帖数: 6727 | 17 你没明白他的问题,不是简单提取中文而是提取内容。很多metainfo都有中文,你这么
搞就弄乱了。
【在 x****u 的大作中提到】 : 提取中文容易啊,把尖括号以外的东西搞出来,然后一一检查。
|
L***n 发帖数: 6727 | 18 我做了个搞mitbbs和文学城的,嘿嘿,可以交流一下,我觉得可以写个框架,不同网站
用针对性的script来解决。我也是用python lxml
【在 h*******s 的大作中提到】 : 嗯 就写了一个专门搞西西河的,因为当时有人求下载一个200多页的高楼。。。 : 各种网站通吃太难了,压根都没这想法。。。
|
h*******s 发帖数: 8454 | 19 呵呵 我的代码扔在
http://code.google.com/p/cchere-thread-saver/source/browse/trun
了
不过用的都是最初级的东西,没多少技术含量~~
【在 L***n 的大作中提到】 : 我做了个搞mitbbs和文学城的,嘿嘿,可以交流一下,我觉得可以写个框架,不同网站 : 用针对性的script来解决。我也是用python lxml
|
L***n 发帖数: 6727 | 20 我是想搞清楚,比如我有了一个html element tree, 好,我吧element拿出来,
下面可能还有一堆之类的东东,就算是text里面可能也有很多象回信给
作者,回信给本版这样没用的noise.如果我想吧有内容的那一块找出来,可以不可以把
操作抽象成比较简单比较整洁的形式,regular expression可能不错,但是我觉得太大
了,真正需要的操作可能是regular expression的一个subset,另外规则写起来也不直
观,如果maintain可能几个月后就忘了这个re是干什么用的了,最好是有一种更简洁的
类似于script的东西,能抽象提取内容所需要的操作,或者就是regular expression上
定义一些函数?现在没时间多搞,只能慢慢想想,hehe
【在 h*******s 的大作中提到】 : 呵呵 我的代码扔在 : http://code.google.com/p/cchere-thread-saver/source/browse/trun : 了 : 不过用的都是最初级的东西,没多少技术含量~~
|
|
|
h*******s 发帖数: 8454 | 21 没太明白你的问题,我也是自己学着玩儿的,原来一点儿都不懂网页的这些东西
如果有了一个tree 你可以直接去找你要的那个之类的啊,但是一般这需要网页的
结构比较规律和固定,类似于mitbbs这种生成的html代码肯定没问题吧
我一般是用firebug看网页的源码,然后找到要找内容的位置,然后拿xpath啥的提取出来
如果你要把文章题目什么的弄出来应该这样就行了,但是如果你要把文章内容里面的某
个部分提取,那恐怕就用到re了吧,我还写了一个提取email的,也在那个目录下
不知道为啥,西西河那个网页是拿javascript生成的,如果直接抓文件抓来的html是一
团乱,后来灵机一动看了看它的js源码,发现就是挺简单一个字符替换,换完了就得到
最后浏览器解释出来的html了
【在 L***n 的大作中提到】 : 我是想搞清楚,比如我有了一个html element tree, 好,我吧element拿出来, : 下面可能还有一堆之类的东东,就算是text里面可能也有很多象回信给 : 作者,回信给本版这样没用的noise.如果我想吧有内容的那一块找出来,可以不可以把 : 操作抽象成比较简单比较整洁的形式,regular expression可能不错,但是我觉得太大 : 了,真正需要的操作可能是regular expression的一个subset,另外规则写起来也不直 : 观,如果maintain可能几个月后就忘了这个re是干什么用的了,最好是有一种更简洁的 : 类似于script的东西,能抽象提取内容所需要的操作,或者就是regular expression上 : 定义一些函数?现在没时间多搞,只能慢慢想想,hehe
|
L***n 发帖数: 6727 | 22 哦,不知到cchere还有这个trick,呵呵,我只是想不对每个网站都开发一遍,尽量把
通用部分和针对网站的特殊部分开。xpath也是一办法了,你怎么处理那些回信到本版
,或者广告之类的text的?
出来
【在 h*******s 的大作中提到】 : 没太明白你的问题,我也是自己学着玩儿的,原来一点儿都不懂网页的这些东西 : 如果有了一个tree 你可以直接去找你要的那个之类的啊,但是一般这需要网页的 : 结构比较规律和固定,类似于mitbbs这种生成的html代码肯定没问题吧 : 我一般是用firebug看网页的源码,然后找到要找内容的位置,然后拿xpath啥的提取出来 : 如果你要把文章题目什么的弄出来应该这样就行了,但是如果你要把文章内容里面的某 : 个部分提取,那恐怕就用到re了吧,我还写了一个提取email的,也在那个目录下 : 不知道为啥,西西河那个网页是拿javascript生成的,如果直接抓文件抓来的html是一 : 团乱,后来灵机一动看了看它的js源码,发现就是挺简单一个字符替换,换完了就得到 : 最后浏览器解释出来的html了
|
h*******s 发帖数: 8454 | 23 哦 原来你在说通用的设计,那我倒是想过,但是觉得没有任何办法。。。
唯一我觉得靠谱的方法就是对每个网站定义一堆参数,比如每个thread的基本格式之类
的,所有的网站的参数手工确定,存到一个数据库文件里,然后下载不同网站的时候调
用不同的格式。。。
但是估计外面的论坛类网站可以有个trick,因为他们很多都是用几个平台的,估计这
几个平台生成的代码样式应该都差不多?
【在 L***n 的大作中提到】 : 哦,不知到cchere还有这个trick,呵呵,我只是想不对每个网站都开发一遍,尽量把 : 通用部分和针对网站的特殊部分开。xpath也是一办法了,你怎么处理那些回信到本版 : ,或者广告之类的text的? : : 出来
|
g*****g 发帖数: 34805 | 24 只是要过滤出纯文本,可以通用。要指定thread内容下载,
只能一个一个来。而且网站一改就得跟着改。
【在 h*******s 的大作中提到】 : 哦 原来你在说通用的设计,那我倒是想过,但是觉得没有任何办法。。。 : 唯一我觉得靠谱的方法就是对每个网站定义一堆参数,比如每个thread的基本格式之类 : 的,所有的网站的参数手工确定,存到一个数据库文件里,然后下载不同网站的时候调 : 用不同的格式。。。 : 但是估计外面的论坛类网站可以有个trick,因为他们很多都是用几个平台的,估计这 : 几个平台生成的代码样式应该都差不多?
|
h*******s 发帖数: 8454 | 25 对啊,所以我想可能可以做成想jdownloader那样的,找些小弟专门参数化模板
【在 g*****g 的大作中提到】 : 只是要过滤出纯文本,可以通用。要指定thread内容下载, : 只能一个一个来。而且网站一改就得跟着改。
|
L***n 发帖数: 6727 | 26 参数可能还不够灵活,这就是我现在梦想创造一个小script语言干这事,说起来好听够
裤,哈哈,其实python是functional的,re+lambda+xpath已经可以完成所有这种工作
了。最简单的用一个表,叫rulebook吧,内容可以是re或者是lambda,一条一条用就行
了。但是maintain这个表可能比较头痛
【在 h*******s 的大作中提到】 : 对啊,所以我想可能可以做成想jdownloader那样的,找些小弟专门参数化模板
|
r****t 发帖数: 10904 | 27 check out beautifulsoup for this sort of thingss, written after rubysoup. It
even sniffs 编码 |