改进的Python贴吧爬虫代码
之前在知乎上面看到许多用Python爬虫做的有趣项目,于是也去学习了一番(入门)。看到很多教程都有关于贴吧爬虫的小例子,于是自己也跟着做了一遍。
可能是教程时间有点早了,多数都是两三年前的,基本都是用正则表达式来提取关键信息,而且还专门写了一个类来处理各种HTML标签。正则表达式并不难学,但是要真正弄清除却很耗时间,尤其对于新手来说,读懂正则表达式是一件很头疼的事,写出正确的表达式更头疼。
后来学习了requests和beautiful soup两个库,那感觉,仿佛春风拂过泸沽湖,秋雨浸润九寨沟。怎一个爽字了得。
关于requests和beautiful soup两个库的教程网上有很多,我看的是崔庆才的博客,内容十分全面,里面的Python爬虫教程也十分适合入门学习。
在其原有的贴吧爬虫代码的基础上,我将提取内容的正则表达式全部替换成了用beautiful soup来获取网页标签内容。
简单来说,Beautiful Soup是python的一个库,最主要的功能是从网页抓取数据。官方解释如下:
Beautiful Soup提供一些简单的、python式的函数用来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简单,所以不需要多少代码就可以写出一个完整的应用程序。
Beautiful Soup自动将输入文档转换为Unicode编码,输出文档转换为utf-8编码。你不需要考虑编码方式,除非文档没有指定一个编码方式,这时,Beautiful Soup就不能自动识别编码方式了。然后,你仅仅需要说明一下原始编码方式就可以了。
Beautiful Soup已成为和lxml、html6lib一样出色的python解释器,为用户灵活地提供不同的解析策略或强劲的速度。
上代码:
#-*- coding: UTF-8 -*-
#__author__shineee
#__time__2016.10__
#__Python27__
import requests
import re
from bs4 import BeautifulSoup
from itertools import chain
import string
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
class Tieba:
def __init__(self, baseUrl, seeLZ):