贴吧地址 :

http://tieba.baidu.com/f?kw=%E7%94%9F%E6%B4%BB%E5%A4%A7%E7%88%86%E7%82%B8&ie=utf-8

通过对贴吧URl地址进行分析,“utf-8”是编码格式,支持中文。
当我们点击下一页时,url变为:

http://tieba.baidu.com/f?kw=%E7%94%9F%E6%B4%BB%E5%A4%A7%E7%88%86%E7%82%B8&ie=utf-8&pn=50
观察可知:在原网页的基础上+&pn=50 第二页 每一页有50个帖子
&pn=100 第三页

&pn=50*n 第n-1页

打开F12,通过审查每一个帖子发现,每个帖子的都包裹在一个li标签内:
<li class=" j_thread_list clearfix">
这样我们只要快速找出所有的符合规则的标签,在进一步分析里面的内容,最后筛选出数据就可以了。

在一个大的li标签内包裹着很多个div标签,我们需要的一些信息就可以从里面进行获得:
#标题和帖子链接
<a href="/p/3916988929" title="百度云看生活大爆炸" target="_blank" class="j_th_tit ">百度云看生活大爆炸</a>

#发帖作者
<span class="tb_icon_author " title="主题作者: 只为你活mcy" data-field="{&quot;user_id&quot;:1387289277}"><i class="icon_author"></i><span class="frs-author-name-wrap"><a data-field="{&quot;un&quot;:&quot;\u53ea\u4e3a\u4f60\u6d3bmcy&quot;}" class="frs-author-name j_user_card " href="/home/main/?un=%E5%8F%AA%E4%B8%BA%E4%BD%A0%E6%B4%BBmcy&amp;ie=utf-8&amp;fr=frs" target="_blank">只为你活m...</a></span><span class="icon_wrap  icon_wrap_theme1 frs_bright_icons "></span>    </span>

#回复数量
<div class="col2_left j_threadlist_li_left">
<span class="threadlist_rep_num center_text" title="回复">19</span>
</div>

#发帖日期
<span class="pull-right is_show_create_time" title="创建时间">5-23</span>

Python版本 : 3.6

以上内容可以通过美味汤 soup.find()方法得到我们需要的信息
浏览器版本: Chrome

目标分析:
由于是第一个实验性质爬虫,我们要做的不多,我们需要做的就是:

1.从网上爬下特定页码的网页
2.对于爬下的页面内容进行简单的筛选分析
3.找到每一篇帖子的 标题、发帖人、日期、楼层、以及跳转链接
4.将结果保存到文本

#!/usr/bin/env python
# coding=utf-8import requests
import time
from bs4 import BeautifulSoup#抓取网页模板def get_html(url):try:r = requests.get(url, timeout=30)r.raise_for_status()# 若请求失败,则抛出异常# 目前已经得知百度贴吧的编码"utf-8",则可以手动设置,否则,使用下面的设置#r.encoding = r.apparent_encoding()r.encoding = 'utf-8'return r.textexcept:return " ERROR!!!"
def get_content(url):"""分析贴吧网页文件,整理信息,保存在列表变量中"""# 初始化列表来保存所有的帖子信息comments = []# 将爬取信息的网页下载到本地html = get_html(url)# 来做一锅汤soup = BeautifulSoup(html,'lxml')# 所有具有' j_thread_list clearfix'属性的li标签。返回一个列表类型liTags = soup.find_all('li',attrs={'class': ' j_thread_list clearfix'})#注意网页信息中的完全匹配,一个空格也算的# 通过循环找到每个帖子里要抓取的信息for li in liTags:# 初始化字典存储文章信息comment = {}# 捕捉异常,防止抓取不到信息而停止try:# 抓取标题comment['title'] = li.find('a',attrs={'class': 'j_th_tit '}).text.strip()# 抓取帖子链接comment['link'] = "http://tieba.baidu.com/" +\li.find('a',attrs={'class': 'j_th_tit '})['href']#多行代码链接# 抓取发帖作者comment['name'] = li.find('span',attrs={'class': 'tb_icon_author '}).text.strip()# 抓取发帖时间comment['time'] = li.find('span',attrs={'class': 'pull-right is_show_create_time'}).text.strip()# 抓取回复数量comment['replyNum'] = li.find('span',attrs={'class': 'threadlist_rep_num center_text'}).text.strip()comments.append(comment)except:print('蜘蛛侠遇到挫折!!!')return comments def Out2File(dict):"""将抓取到的文件写入本地保存到当前目录的 BDTB.txt"""with open('BDTB.txt','a+') as f:for comment in dict:f.write('\t标题:{} \n链接:{} \n发帖人:{} \t时间:{} \t回复数量:{}\n\n'.format(comment['title'], comment['link'], comment['name'], comment['time'], comment['replyNum']))print("This Page ,蜘蛛侠扫荡完毕!!!")def main(base_url, deep):# 将所有需要爬取的URL存入列表中url_list=[]for i in range(0, deep):url_list.append(base_url + '&pn='+str(50*i))print("所有网页下载完毕!!等待蜘蛛侠出发!!!")#循环写入所有的数据for url in url_list:content = get_content(url)Out2File(content)print("蜘蛛侠将爬取信息存入本地成功!BBYE!")base_url = 'http://tieba.baidu.com/f?kw=%E7%94%9F%E6%B4%BB%E5%A4%A7%E7%88%86%E7%82%B8&ie=utf-8'
# 设置需要爬取的页码数量
deep = 1if __name__ == '__main__':main(base_url, deep)

爬虫实践---抓取百度贴吧相关推荐

  1. python爬虫百度贴吧代码大全_零基础写python爬虫之抓取百度贴吧代码分享

    这里就不给大家废话了,直接上代码,代码的解释都在注释里面,看不懂的也别来问我,好好学学基础知识去! # -*- coding: utf-8 -*- #------------------------- ...

  2. python爬取小说写入txt_零基础写python爬虫之抓取百度贴吧并存储到本地txt文件改进版...

    百度贴吧的爬虫制作和糗百的爬虫制作原理基本相同,都是通过查看源码扣出关键数据,然后将其存储到本地txt文件. 项目内容: 用Python写的百度贴吧的网络爬虫. 使用方法: 新建一个BugBaidu. ...

  3. python抓取贴吧_零基础写python爬虫之抓取百度贴吧代码分享

    这里就不给大家废话了,直接上代码,代码的解释都在注释里面,看不懂的也别来问我,好好学学基础知识去! # -*- coding: utf-8 -*- #------------------------- ...

  4. 使用CURL构建爬虫,抓取百度百科内容

    实现这个功能的步骤: 首先打开百度百科,在搜索框输入"php"关键词,得到搜索列表,一般都是10条: 然后使用火狐的Firebug分析百度列表的内容组成,主要是html标签,发现去 ...

  5. python爬虫(抓取百度新闻列表)

    一.python请求要抓取的url页面 要抓取的url http://news.baidu.com/ ,先python模拟请求该url #!/usr/bin/python # -*- coding:u ...

  6. 爬虫实践---抓取小说网站

    电子书网站:http://www.7kanshu.net/ 对网页进行分析可知,玄幻奇幻排行武侠仙侠排行历史军事排行完本小说排行观察发现,历史军事和完本小说的时一致的,其余类别是一样的,所以进行分开处 ...

  7. Python 爬虫实践-抓取小说

    网络爬虫(Web Spider),又被称为网页蜘蛛,是一种按照一定的规则,自动地抓取网站信息的程序或者脚本. 爬虫流程: 1,先由 urllib 的 request 打开 Url 得到网页 html ...

  8. python爬取知乎live_Python爬虫 - 简单抓取百度指数

    前言有点忙,没空写东西,这是之前写的,加了些配图而已 这次要爬的网站是百度指数 正文 一.分析 打开网站(百度指数),呈现出来是这样的 如果搜索的话就需要登陆了,如果没有什么特别频繁的请求的话,直接登 ...

  9. scrapy 搜索关键字_详解如何用爬虫批量抓取百度搜索多个关键字数据

    本文介绍如何使用软件的流程图模式,免费采集百度搜索多个关键字的信息数据. 软件下载网址:www.houyicaiji.com 采集结果预览: 下面我们来详细介绍一下如何使用流程图模式,采集在百度输入多 ...

最新文章

  1. 对比less聊scss(1):scss特性
  2. pat1003 迪杰斯特拉法和dfs求最短路
  3. socket(套接字)详解一种通讯机制
  4. python中for循环和while循环的区别_python中while循环和for循环的定义和详细的使用方法...
  5. Bounce(弹走绵羊)lct裸题
  6. Python案例:两种方法实现词频统计
  7. moodeaudio 源码_MoodeAudio 音频播放器上手配置
  8. div contenteditable 换行_contenteditable跟style标签可真是天生一对
  9. HTML(八)------ 布局
  10. openCV实现多人脸检测,多眼部检测,完整代码和详细注释
  11. 15 年工龄的阿里P9职场历程自述
  12. 华为云官网前端的技术演进与低代码实践
  13. “霜”面打击,你的电脑HOLD住吗?
  14. jvm:jvm GC日志解析:G1日志解析
  15. Andrew Ng-ML习题答案1
  16. 再仔细读读react18官方文档吧 20220531
  17. 云服务器配置代理服务
  18. 千兆12光12电管理型工业以太网交换机 12千兆光12千兆电口宽温环网交换机
  19. iframe的滚动条隐藏后仍可滑动
  20. 变速不变调播放mp3-QT-QAudioOutput-lame-sonic

热门文章

  1. 陈老师深度为你解析,单片机的运行原理
  2. //MySQL核心技术// 数据库的介绍、MySQL-5.5.15安装包以及详细安装教程、卸载注册表、MySQL服务的启动与停止、登录与退出
  3. Mysql数据库详细教程
  4. Window7 USB HID 即插即用触摸屏 原始数据获取
  5. ASP.NET MVC5 高级教程 学习笔记
  6. 服务器装系统步骤图解win7,怎么装win7系统?本地硬盘安装win7/XP系统详细教程
  7. 中国手机显示屏产业运作状况与发展格局分析报告2022版
  8. Idea 使用git插件从git仓库下载project图文并茂,详细解答
  9. 找不到文件direct12.h
  10. python爬虫实例大全