python爬虫初体验(百度贴吧)

最近闲来无事在网上看了会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")
不然就会报错。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值