|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 ~风介~ 于 2015-6-5 23:44 编辑
python新手,在2.7环境下自己想编一个抠网页电子书的爬虫,网页能爬下来,但是主要问题是对于其中的中文电子书内容,由于存在很多的换行,还有夹杂着稀奇古怪的字符。。很难干净的提取出来
初学了正则表达式,但具体的还不是特别的顺手,所以求助一下大家,应该怎么从html文本中提取中文内容比较好呢?
附上我目前编写的程序~~希望大家能多多指教
- #-*- coding:utf-8 -*-
- import re
- import urllib
- def get_content(url):
- """doc."""
- html = urllib.urlopen(url)
- content = html.read()
- html.close
- return content
- def get_ebooks(info):
- """
- 用来获得电子书的内容部分,存入
- """
- #regex = r'id="BookText"> \((.+</div>)|"BookText"(.+</p></div>)'
- regex = r'"BookText"(.+</div>)'
- pat = re.compile(regex)
- ebook_content = re.findall(pat,info)
- a= ebook_content[0]
- #print ebook_content
- return a
- url = 'http://www.zanghaihua.org/2428.html'
- html = get_content(url)
- ebook_content=get_ebooks(html)
- print ebook_content
- a=ebook_content.replace(r"<br /><br /> ",'\n')
- a=a.replace(r"<br/><br/> ",'\n')
- a=a.replace(r"”","”")
- a=a.replace(r"“","“")
- a=a.replace(r"</span></p></div>","")
- a=a.replace(r"<br/><br/> ","\n")
- b=re.split(r'\n',a)
- print a
- fl=open('3.txt', 'w')
- for i in b:
- fl.write('\n')
- fl.write(' ')
- fl.write(i)
- fl.close()
复制代码
|
|