百度贴吧小说爬取源码

liujiayi555 2016-12-05 12:28:02
#_*_ coding:utf-8_*_
import re,urllib2,urllib
class BDTB:
#地址,只看楼主 ,多页,
baseUrl='http://tieba.baidu.com/p/3905339699?see_lz=&pn='
#获取源代码
def getPage(self,pageNum):#该页帖子的代码
try:
url=self.baseUrl+str(pageNum)#获取源代码
request=urllib2.Request(url)
response=urllib2.urlopen(request)
return response.read()
except Exception,e:
print e
#匹配标题
def Title(self,pageNum):
html=self.getPage(pageNum)#调用方方,获取源代码
reg=re.compile(r'title="【非原创】(.*?)"')
items=re.findall(reg,html)#返回的是列表
for item in items:
f = open('liujiayi.txt','w')#打开文件的模式
f.write('标题'+'\t'+item)
f.close()
return items
#匹配正文
def Text(self,pageNum):
html=self.getPage(pageNum)#调用方方,获取源代码
reg=re.compile(r'class="d_post_content j_d_post_content "> (.*?)</div><br>',re.S)
req=re.findall(reg,html)
if pageNum==1:
req=req[1:]#第一段不要
for i in req:#去渣子
removeAddr=re.compile('<a.*?>|</a>')
removeaddr=re.compile('<img.*?>')
removeAdd=re.compile('http.*?.html')
i=re.sub(removeAddr," ",i)
i=re.sub(removeaddr," ",i)
i=re.sub(removeAdd," ",i)
i=i.replace('<br>','')#替换
print i# 完全没有杂质的正文内容
f=open('liujiayi.txt','a')
f.write('\n\n'+i)#换行
f.close()

bdtb=BDTB()#调用
print '爬虫正在启动......'
try:
for i in range(1,15):
print '正在抓取第%s页的小说'%(i)
bdtb.Title(i)
bdtb.Text(i)
except Exception,e:
print e
...全文
300 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ScottX1 2016-12-07
  • 打赏
  • 举报
回复
出来的内容要进行重新编码,如下: .decode("utf-8")
zy_dream 2016-12-06
  • 打赏
  • 举报
回复

爬取时是否遇到过这种乱码问题,求解
ppchaos 2016-12-06
  • 打赏
  • 举报
回复
python 3的吗?

37,720

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧