[Python]网络爬虫(九):百度贴吧的网络爬虫(v0.4)源码及解析.pdf
文本预览下载声明
汪汪海海的的实实验验室室
-- -- 各各种种图图形形学学实实验验和和数数据据结结构构实实验验以以及及其其他他一一切切琐琐碎碎杂杂乱乱的的小小笔笔记记 都都相相遇遇在在此此齐齐聚聚一一堂堂共共同同守守候候 00
eerrrroorr ((ss)),, 00 wwaarrnniinngg ((ss)) 这这神神奇奇时时刻刻的的到到来来
[[PPyytthhoonn]]网网络络爬爬虫虫 ((九九))::百百度度贴贴吧吧的的网网络络爬爬虫虫 ((vv00..44))源源码码及及解解析析
分类: 爬虫 Python 2013-05-16 13:48 1100人阅读 评论 (8) 收藏 举报
百度贴吧的爬虫制作和糗百的爬虫制作原理基本相同 ,都是通过查看源码扣出关键数 ,然后将其存储到本地txt文
件。
项目内容 :
用Python写的百度贴吧的网络爬虫。
使用方法 :
新建一个BugBaidu.py文件 ,然后将代码复制到里面后 ,双击运行。
程序功能 :
将贴吧中楼主发布的内容打包txt存储到本地。
原理解释 :
首先 ,先浏览一下某一条贴吧 ,点击只看楼主并点击第二页之后url发生了一点变化 ,变成了 :
/p/2296712428?see_lz=1pn=1
可以看出来 ,see_lz=1是只看楼主 ,pn=1是对应的页码 ,记住这一点为以后的编写做准备。 这就是我们需要利用的
url。
接下来就是查看页面源码。
首先把题目抠出来存储文件的时候会用到。
可以看到百度使用gbk编码 ,标题使用h1标记 :
h1 class=core_title_txt title= 【原创】时尚首席 (关于时尚,名利,事业,爱情,励志) 【原创】时尚首席 (关于时尚,名利,事业,爱情,励志)/h1
同样 ,正文部分用div和class综合标记 ,接下来要做的只是用正则表达式来匹配即可。
运行截图 :
1
生成的txt文件 :
# -*- coding: utf-8 -*-
#
# 程序:百度贴吧爬虫
# 版本:0.
2
# 作者:why
# 日期:2013-0 -16
# 语言:Python 2.7
# 操作:输入网址后 自动只看楼主并保存到本地文件
# 功能:将楼主发布的内容打包txt存储到本地。
#
import string
import urllib2
import re
# 处理页面上的各种标签
class HTML_Tool:
# 用非 贪婪模式 匹配 \t 或者 \n 或者 空格 或者 超链接 或者 图片
BgnCharToNoneRex = pile((\t|\n| |a.*?|img.*?))
# 用非 贪婪模式 匹配 任意标签
EndCharToNoneRex = pile(.*?)
# 用非 贪婪模式 匹配 任意p标签
BgnPartRex = pile(p.*?)
CharToNewLineRex = pile((br/|/p|tr|div|/div))
CharToNextTabRex = pile(td)
# 将一些html的符号实体转变为原始符号
replaceTab = [(,),(,),(,),(,\),( , )]
def Replace_Char(self,x):
x = self.BgnCharToNoneRex.sub (,x)
x = self.BgnPartRex.sub (\n ,x)
x = self.CharToNewLineRex.sub (\n,
显示全部