一、 环境
   (1) windws 10
   (2)  python 2.7
   (3)  pycharm

二、详细代码

(1)日志分析类

import logging
import getpass
import sys#### 定义MyLog类
class MyLog(object):
#### 类MyLog的构造函数def __init__(self):self.user = getpass.getuser()self.logger = logging.getLogger(self.user)self.logger.setLevel(logging.DEBUG)####  日志文件名self.logFile = sys.argv[0][0:-3] + '.log'self.formatter = logging.Formatter('%(asctime)-12s %(levelname)-8s %(name)-10s %(message)-12s\r\n')####  日志显示到屏幕上并输出到日志文件内self.logHand = logging.FileHandler(self.logFile, encoding='utf8')self.logHand.setFormatter(self.formatter)self.logHand.setLevel(logging.DEBUG)self.logHandSt = logging.StreamHandler()self.logHandSt.setFormatter(self.formatter)self.logHandSt.setLevel(logging.DEBUG)self.logger.addHandler(self.logHand)self.logger.addHandler(self.logHandSt)####  日志的5个级别对应以下的5个函数def debug(self,msg):self.logger.debug(msg)def info(self,msg):self.logger.info(msg)def warn(self,msg):self.logger.warn(msg)def error(self,msg):self.logger.error(msg)def critical(self,msg):self.logger.critical(msg)if __name__ == '__main__':mylog = MyLog()mylog.debug(u"I'm debug 测试中文")mylog.info("I'm info")mylog.warn("I'm warn")mylog.error(u"I'm error 测试中文")mylog.critical("I'm critical")

(2)爬取的主类

import urllib2
from bs4 import BeautifulSoup
from mylog import MyLog as mylogclass Item(object):title = None    #帖子标题firstAuthor = None  #帖子创建者firstTime = None   #帖子创建时间reNum = None    #总回复数content = None  #最后回复内容lastAuthor = None   #最后回复者lastTime = None #最后回复时间class GetTiebaInfo(object):def __init__(self,url):self.url = urlself.log = mylog()self.pageSum = 5self.urls = self.getUrls(self.pageSum)self.items = self.spider(self.urls)self.pipelines(self.items)def getUrls(self,pageSum):urls = []pns = [str(i*50) for i in range(pageSum)]ul = self.url.split('=')for pn in pns:ul[-1] = pnurl = '='.join(ul)urls.append(url)self.log.info(u'获取URLS成功')return urlsdef spider(self, urls):items = []for url in urls:htmlContent = self.getResponseContent(url)soup = BeautifulSoup(htmlContent, 'lxml')tagsli = soup.find_all('li',attrs={'class':' j_thread_list clearfix'})for tag in tagsli:item = Item()item.title = tag.find('a', attrs={'class':'j_th_tit'}).get_text().strip()item.firstAuthor = tag.find('span', attrs={'class':'frs-author-name-wrap'}).a.get_text().strip()item.firstTime = tag.find('span', attrs={'title':u'创建时间'.encode('utf8')}).get_text().strip()item.reNum = tag.find('span', attrs={'title':u'回复'.encode('utf8')}).get_text().strip()item.content = tag.find('div', attrs={'class':'threadlist_abs threadlist_abs_onlyline '}).get_text().strip()item.lastAuthor = tag.find('span', attrs={'class':'tb_icon_author_rely j_replyer'}).a.get_text().strip()item.lastTime = tag.find('span', attrs={'title':u'最后回复时间'.encode('utf8')}).get_text().strip()items.append(item)self.log.info(u'获取标题为<<%s>>的项成功 ...' %item.title)return itemsdef pipelines(self, items):fileName = u'百度贴吧_权利的游戏.txt'.encode('GBK')with open(fileName, 'w') as fp:for item in items:fp.write('title:%s \t author:%s \t firstTime:%s \n content:%s \n return:%s \n lastAuthor:%s \t lastTime:%s \n\n\n\n' %(item.title.encode('utf8'),item.firstAuthor.encode('utf8'),item.firstTime.encode('utf8'),item.content.encode('utf8'),item.reNum.encode('utf8'),item.lastAuthor.encode('utf8'),item.lastTime.encode('utf8')))self.log.info(u'标题为<<%s>>的项输入到"%s"成功' %(item.title, fileName.decode('GBK')))def getResponseContent(self, url):'''这里单独使用一个函数返回页面返回值,是为了后期方便的加入proxy和headers等'''try:response = urllib2.urlopen(url.encode('utf8'))except:self.log.error(u'Python 返回URL:%s  数据失败' %url)else:self.log.info(u'Python 返回URUL:%s  数据成功' %url)return response.read()if __name__ == '__main__':url = u'http://tieba.baidu.com/f?kw=权利的游戏&ie=utf-8&pn=50'GTI = GetTiebaInfo(url)

三、结果显示

bs4爬虫:获取百度贴吧的内容相关推荐

  1. python爬虫获取百度贴吧内容

    python爬虫获取百度贴吧内容 python爬虫获取百度贴吧内容 *声明:本文仅供学习交流使用,请勿用于商业用途,违者后果自负.* python爬虫获取百度贴吧内容 博主是一个比较懒的人,不会按时更 ...

  2. Python 爬虫 - 获取百度关键字搜索内容

    Python 爬虫 获取百度关键字搜索内容 https://www.cnblogs.com/w0000/p/bd_search_page.html Github headers内的参数,仅有UA时,返 ...

  3. python爬去百度搜索结果_python爬虫获取百度搜索结果的简单示例

    编程之家收集整理的这篇文章主要介绍了python爬虫获取百度搜索结果的简单示例,编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考. 感兴趣python爬虫获取百度搜索结果的简单示例的小伙伴, ...

  4. HtmlAgilityPack.dll爬虫获取百度音乐批量下载地址(C#源码)

    关于分析的过程和思路参考原来的一篇文章 <HtmlAgilityPack 爬虫批量获取百度音乐下载地址一> http://blog.csdn.net/witch_soya/article/ ...

  5. 手把手教你使用Python网络爬虫获取B站视频选集内容(附源码)

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 位卑未敢忘忧国,事定犹须待阖棺. ...

  6. 用Python爬虫获取百度企业信用中企业基本信息!太厉害了!

    一.背景 希望根据企业名称查询其经纬度,所在的省份.城市等信息.直接将企业名称传给百度地图提供的API,得到的经纬度是非常不准确的,因此希望获取企业完整的地理位置,这样传给API后结果会更加准确.百度 ...

  7. (Scrapy框架)爬虫获取百度新冠疫情数据 | 爬虫案例

    目录 前言 环境部署 插件推荐 爬虫目标 项目创建 webdriver部署 项目代码 Item定义 中间件定义 定义爬虫 pipeline输出结果文本 配置文件改动 验证结果 总结 前言 闲来无聊,写 ...

  8. bs4爬虫:获取双色球中奖信息

    一.开发环境 (1)win10 (2)python 2.7 (3)pycharm 二.保存数据到excel的类 import xlwtclass SavaBallDate(object):def __ ...

  9. PYTHON 2.7爬虫获取百度音乐文件(按歌手名或歌曲名均可)

    2018.8.3 有点小错误正在修改!!!!    2018.8.6 修正完毕,存在小问题(歌手有多个,会创建多个文件夹)   最近学习了关于python的一点点知识,做出一点点小小程序来帮助自己加深 ...

最新文章

  1. 程序员在职场中想快速升职,这4种潜质少不得!
  2. Java 项目UML反向工程转化工具
  3. 皮一皮:你有没有为中国大数据力量做一份贡献!
  4. java类同步,Java同步工具類(一)
  5. k8s kube-dns和服务发现
  6. prototype极速应用1
  7. mysqldump 定时备份数据(全量)
  8. 你会选择深圳还是佛山?
  9. 解决python导入当前文件夹下的包时可以运行,但编辑器报错
  10. (41)System Verilog输出变量时序延迟
  11. python的进程和线程定位_Python | 进程 线程的理解拾遗
  12. 9-3 数据分布概论
  13. class文件如何在linux下打开_Linux下文件的三个时间属性
  14. 上计算机课没有签到肿么办,钉钉教学直播如何课前签到 钉钉直播如何提醒未签到的学生...
  15. 2、杂项:Bootloader升级方式---擦、写flash在RAM中运行
  16. 女孩起名字:诗经中惊艳的女孩名字
  17. 小数输出最简分数c语言,小数化成最简式分数
  18. 准大四生,现在是七月中旬,要为秋招准备什么?
  19. 模糊测试工具defensics
  20. Tars-C++服务的CI/CD

热门文章

  1. LeetCode - 644 子数组最大平均数 II
  2. Win10激活失败的原因之一
  3. python: npy数据写入excel文件
  4. 使用gluLookAt发生无法解析符号的错误
  5. 计算机网络技术基础篇
  6. stack、queue和priority_queue
  7. echarts生成图表的简单使用
  8. Distiller 安装时环境配置的一些可选项
  9. 小布老师oralce讲座笔记(六)
  10. c ajax 500,Ajax和jQuery中的C:\ fakepath \ *。*