一、介绍
我们常遇到一些很长的贴吧连载帖子想存到本地再看
此文就是运用python爬取指定百度贴吧的帖子并存到本地满足需求
环境:python2.7
目标网页:【长篇连载】剑网3的正史和野史——从头开始讲剧情故事
源码存放:源码github
本文参考:静觅博客python实战系列
二、页面的抓取
目标网页网址为https://tieba.baidu.com/p/2196794546
满足可以选择是否只看楼主的抓取我们点一下 只看楼主 并点一下后页的链接来获取只看楼主和翻页的参数
这时候可以看到只看楼主多出的参数 see_lz 和当前页的参数 pn
接下来定义一个DEMO类开始获取整个网页
# -*- coding:utf-8 -*-
import urllib
import urllib2
import re
class DEMO:
def __init__(self,baseUrl):
self.baseURL = baseUrl
def getPage(self):
url = baseURL
request = urllib2.Request(url)
response = urllib2.urlopen(request)
print response.read()
baseURL = 'https://tieba.baidu.com/p/2196794546?see_lz=1&pn=3'
demo = DEMO(baseURL)
demo.getPage()
运行结果:
爬取网页代码成功后我们完善一下代码,将只看楼主和页码提为参数
def __init__(self,baseUrl,seeLZ):
self.baseURL = baseUrl
self.seeLZ = '?see_lz=' +str(seeLZ)
self.tool = Tool()
def getPage(self,pageNum):
try:
url = self.baseURL+self.seeLZ + '&pn=' + str(pageNum)
request = urllib2.Request(url)
response = urllib2.urlopen(request)
return response.read().decode('utf-8')
except urllib2.URLError, e:
if hasattr(e,"reson"):
print u"链接失败,原因:",e.reason
return None
三、提取出想要的信息
打开目标网页审查元素(F12)
首