爬取百度贴吧用户的帖子

本文介绍如何使用Python爬虫从百度贴吧获取特定用户的所有帖子。通过访问用户主页,提取帖子ID,构造新的URL并进行爬取。虽然百度贴吧的个人主页采用动态加载,导致无法直接获取所有帖子,但可以通过修改正则表达式,匹配时间并排序,实现按时间顺序写入帖子内容到文件。最终,实现了从用户http://tieba.baidu.com/home/main?un=%E6%B3%95%E5%9F%8E%E5%A0%A1%E9%A2%A4%E6%8A%96&ie=utf-8&fr=pb的帖子数据下载。
摘要由CSDN通过智能技术生成

在基于Python爬虫实战二之爬取百度贴吧帖子的项目–崔庆才(http://cuiqingcai.com/993.html),该项目最终爬取一个贴子的所有楼层或者只看楼主。
想到自己可以爬取一个用户的所有帖子,只需修改写入文件的方式,和正则表达式,以及一些微小改动就可以。
爬取的用户为http://tieba.baidu.com/home/main?un=%E6%B3%95%E5%9F%8E%E5%A0%A1%E9%A2%A4%E6%8A%96&ie=utf-8&fr=pb
具体思路为,爬取用户主页的信息,从中提取去每一帖子的ID,放入list中,再根据baseurl加上一些个人需求(如是否只看楼主)生成实际可爬取的url,,下面就可以按照上面的教程一样,稍作修改,爬取的信息都写入一个文件中。

问题:
1.百度贴吧的个人主页是动态加载,无法根据用户的url爬取所有的帖子,而只是爬取一部分。
2.爬取的帖子是按照帖子发布的更新时间写入的。
如果要按照时间先后写入文件,那个可以在正则表达式中,匹配好时间,在对时间进行排序,依次写入内容:或者将urllist反向读取,依次写入内容。

最终结果:
http://download.csdn.net/download/sinat_36802840/9715688

# -*- coding:utf-8 -*-
import re
import urllib2

#处理页面标签类
class Tool:
    #去除img标签,7位长空格
    removeImg = re.compile('<img.*?>| {7}|')
    #删除超链接标签
    removeAddr = re.compile('<a.*?>|</a>')
    #把换行的标签换为\n
    replaceLine = re.compile('<tr>|<div>|</div>|</p>')
    #将表格制表<td>替换为\t
    replaceTD= re.compile('<td>')
    #把段落开头换为\n加空两格
    replacePara = re.compile('<p.*?>')
    #将换行符或双换行符替换为\n
    replaceBR = re.compile('<br><br>|<br>')
    #将其余标签剔除
    removeExtraTag = re.compile('<.*?>')
    def replace(self,x):
        x = re.sub(self.removeImg,"&#
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值