麻烦从HTML获取干净的文本文件

时间:2013-07-10 15:24:03

标签: python html beautifulsoup

我看过these previous questions

我正在尝试整合来自网站的新闻和笔记。

知名新闻服务网站允许用户发表评论和观看。

我试图在没有用户评论的情况下仅获取新闻内容。我尝试使用BeautifulSouphtml2text。但是用户注释包含在文本文件中。我甚至尝试开发一个自定义程序,但没有比上面两个有用的进展。

有人能提供一些线索吗?

代码:

import urllib2
from bs4 import BeautifulSoup
URL ='http://www.example.com'
print 'Following: ',URL
print "Loading..."
user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
identify_as = { 'User-Agent' : user_agent }
print "Reading URL:"+str(URL)    
def process(URL,identify_as):
    req = urllib2.Request(URL,data=None,headers=identify_as)
    response = urllib2.urlopen(req) 
    _BSobj = BeautifulSoup(response).prettify(encoding='utf-8')
    return _BSobj #return beauifulsoup object
print 'Processing URL...'
new_string = process(URL,identify_as).split()

print 'Buidiing requested Text'
tagB = ['<title>','<p>']    
tagC = ['</title>','</p>']
reqText = []
for num in xrange(len(new_string)):
    buffText = [] #initialize and reset
    if new_string[num] in tagB: 
        tag = tagB.index(new_string[num])
        while new_string[num] != tagC[tag]:
            buffText.append(new_string[num])
            num+=1
        reqText.extend(buffText)


reqText= ''.join(reqText)
fileID = open('reqText.txt','w')
fileID.write(reqText)
fileID.close()

1 个答案:

答案 0 :(得分:1)

这是我使用urllib编写的一个快速示例,它将页面内容获取到文件中:

import urllib
import urllib.request
myurl = "http://www.mysite.com"

sock = urllib.request.urlopen(myurl)
pagedata = str(sock.read())                          
sock.close()

file = open("output.txt","w")
file.write(pagedata)
file.close()

然后使用大量字符串格式,您应该能够提取所需的html部分。这为您提供了入门的东西。