爬取百度贴吧帖子

依然是参考教程 Python爬虫实战一之爬取百度贴吧帖子。作者崔庆才写了很多关于Python爬虫的文章,大家有兴趣的话可以去他的个人博客静觅学习。

源代码还是在我的GitHub主页上。

这次将爬取的数据写入了文本文件中,并用到了re模块中其他的匹配方式。

爬取百度贴吧帖子_第1张图片
页面源代码.PNG

由于页面中包含了图片、超链接等一些我们不需要的信息,我们利用一个方法将这些信息剔除掉。

class Tool:
    removeImg = re.compile('')
    removeAddr = re.compile('|')
    replaceBR = re.compile('
') removeExtraTag = re.compile('<.*?>') def replace(self, x): x = re.sub(self.removeImg,"",x) x = re.sub(self.removeAddr,"",x) x = re.sub(self.replaceBR,"\n",x) x = re.sub(self.removeExtraTag,"",x) return x.strip()

re.sub(pattern, repl, string)将字符串string中符合正则表达式pattern的部分替换为repl。

def getTitle(self, page):
    pattern = re.compile('

utf-8是unicode的实现方式之一。字符串在Python内部的表示是unicode编码。pageCode = response.read().decode('utf-8')decode('utf-8')代表将utf-8编码的字符串转换成unicode编码,然后在Python中进行处理。contents.append(content.encode('utf-8'))表示将unicode编码转换成utf-8编码的字符串,然后才能写入txt文件。self.file = open(title + ".txt", "w+")中的w+参数表示打开一个文件用于读写,如果该文件已存在则将其覆盖,如果该文件不存在,创建新文件。

以前每次在百度贴吧上看帖子想要只看楼主都要登录,这次以后知道只要在网址后面加上?see_lz=1就可以直接看了。

你可能感兴趣的:(爬取百度贴吧帖子)