最近闲来无事在网上看了会python的教程,发现上手比较简单。于是心血来潮想写个脚本玩玩。写什么呢?想起以前在贴吧里追的某个帖子,在线看起来特别麻烦,所以想把它爬下来看。
直接上代码:
#coding = utf-8
import urllib
import sys
from pyquery import PyQuery
import re
reload(sys)
sys.setdefaultencoding("utf-8")
def getHtml(url):
page = urllib.urlopen(url)
html = page.read()
return html
html = unicode(getHtml("http://tieba.baidu.com/p/1894972828?see_lz=1"), "utf-8")
q = PyQuery(html)
href = q.find('.l_posts_num:first a:last').attr("href")
reg = r'pn=(\d+)'
result = re.search(reg, href)
pageMax = result.group(1)
i = 1
file = open('content.txt', 'ab+')
while i <= int(pageMax):
html = unicode(getHtml("http://tieba.baidu.com/p/1894972828?see_lz=1&pn="+str(i)), "utf-8")
q = PyQuery(html)
content = q.find('cc').find('.j_d_post_content').text()
file.write(content)
print '第'+str(i)+'页完成'
i += 1
file.close()
其中的pyquery默认是未安装的,需要使用easy_install安装。(easy_install是python下的一个包管理器,相当于nodejs的npm,如果没有安装请自行百度哈)
代码中因为涉及到中文,所以得加上
reload(sys)
sys.setdefaultencoding("utf-8")
不然就会报错。