用python提取百度貼吧的小說

來源:互聯網
上載者:User

這個部落客要是發表些關於Windows Phone開發相關方面的文章的,和 http://blog.sina.com.cn/u/2391033251 同步更新。不過今天不務正業一下,發表一段python代碼。這個程式主要功能是從百度貼吧,獲得html檔案,然後用Beautiful Soup解析html檔案,提取貼吧的文章。幹什麼的?其實是來看小說的,想做的更自動化一些的,但是python開始學沒多長時間,暫時做到這個程度了,以後有機會會考慮增強功能的。

代碼如下:

#-*- encoding: utf-8 -*-
import urllib2
import re
from BeautifulSoup import BeautifulSoup

def stripHTMLTags (html):
'''strip html tags; from http://goo.gl/EaYp5'''
return re.sub('<([^!>]([^>]|\n)*)>', '', html)

def fetch_tieba(url,localfile,ignoreFansReq=False):
'''fetch the url resource and save to localfile'''

# fetch the url resource and encode to utf-8
html = urllib2.urlopen(url).read()
html = unicode(html,'gb2312','ignore').encode('utf-8','ignore')

# extract the main content
content = BeautifulSoup(html).findAll(attrs={'class':'d_post_content'})

# write the content to localfile
myfile = open(localfile,'w')
for item in content:
item_formatted = stripHTMLTags(str(item).replace('<br />','\r\n'))
if ignoreFansReq == True :
if len(item_formatted) < 100:
continue
myfile.write(item_formatted)
myfile.write('\r\n')
print item_formatted
myfile.close()

def main():
urlTarget = "http://tieba.baidu.com/p/1234371208"
localfileTarget = './xiaoshuo2.txt'
fetch_tieba(url=urlTarget,localfile=localfileTarget,ignoreFansReq=True)

if __name__ == "__main__":
main()

 

簡單說明:
1 本人使用的開發環境是 Windows 7 Ultimate 32bit + Python 2.7;依賴 Beautiful Soup (地址) ,使用版本是 BeautifulSoup-3.2.0;
2 fetch_tieba函數參數的含義:url,貼吧資源目標地址;localfile,儲存到本地檔案的路徑;ignoreFansReq,忽略插樓、求粉等灌水資訊(只是根據文字數判斷,很簡陋);
3 代碼具有時效性,如果百度貼吧的頁面DOM發生改變,程式可能失效。 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.