1,目标:

爬取贴吧每一贴,楼主图,并保存。

由于图片大多是楼主发的,如果全部查找会浪费很多时间。

2,分析

我选择爬取的贴吧为图吧,你们可以选择自己想要爬取的贴吧。

2.1,获取页面

我们将爬取页面的代码写成一个get_html()方法,给他传入url参数

代码如图:

获取正常,没问题。

我们用chrome的开发者模式来分析每个贴的连接,用定位定位一个帖子,这样方便我们快速的去查找我们想要的信息。

如图:

2.2利用正则表达式找出我们想要的连接

通过查找,我们发现每个贴都是在class=“col2_right j_threalist_li/_right”下

我们可以让他成为一个标志位,通过它继续往下找,他有两个类名,我们选择后者即可。

<div.?j_threadlist_li_right.?>.?<a.?href="(.?)".?>(.*?)

返回的是一个数组,为了好看我们以字典的方式返回,用yield我们可以理解为返回值,在python基础里会讲,我们将获取的页面作为参数传进去,实现get_url方法。

如图:

我们来打印一下,看一下获取的是什么?

结果如图:

很明显,我们需要来拼接一下,获取完整的url,我们点击一个进入,可以发现,url是这样的:https://tieba.baidu.com/p/5768252315,我们得到了后半部分,那就容易了,只需要拼接一下,得到的结果就变成了:

得到链接后,我们需要再次发送请求,获取到每个贴的内容,即调用我们上面写好的get_html()方法即可。

2.3找到每个帖子楼主发的图片链接

同样的方式,打开开发者模式,找的图片,找出标志位,写出正则,这里就不详细说了,正则为:

实现get_img_url()方法:

结果图为:

2.4获取到图片地址后,自然是要下载下来实现write_to_file()方法

下载图片,在上篇文章上已经有实例,

连接:python第二大神器requests

这里直接上代码图:

里面的正则是用来作为图片名字的,time.sleep(2)是为了爬取慢点

太快会无响应或者报错。

下面我们试一下效果:

我们来修改一下,来爬取第一页贴种的所有贴,获取楼主贴的总页数

和上面同样的方式找到总页数,并写出获取总页数的正则:

实现get_ye方法,同时点击只看楼主,url会多出see_lz=1

如图:

2.5由于有些贴吧的贴子很多,我们就选择获取前十页内容,当然你也可以写个方法换取所有页

这里就不实例了,在贴吧里点击下一页我们发现url多出pn=50,由此我们知道50为偏移量,即一页有50个帖子pn=n 是n+1到n+50帖子

2.6整合一下代码,我们用main()方法来调用上面的方法。

如图:



推荐一下我建的python学习交流扣扣qun:850973621,群里有免费的视频教程,开发工具、
电子书籍、项目源码分享。一起交流学习,一起进步!

作者:小新你蜡笔呢
链接:https://www.jianshu.com/p/27c534394890
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

爬取百度贴吧实战,python教你如何获取相关推荐

  1. python爬取百度搜索_使用Python + requests爬取百度搜索页面

    想学一下怎样用python爬取百度搜索页面,因为是第一次接触爬虫,遇到一些问题,把解决过程与大家分享一下 1.使用requests爬取网页 首先爬取百度主页www.baidu.com import r ...

  2. 手把手带你爬取百度美女图片,Python练手项目!

    本文纯技术角度出发,教你如何用Python爬虫获取百度美女图片--技术无罪. 目标站点 百度图片使用关键字搜索 小姐姐私房照 https://image.baidu.com/ 开发环境 系统:Wind ...

  3. python爬取百度文库_利用Python语言轻松爬取数据

    利用 Python 语言轻松爬取数据 对于小白来说,爬虫可能是一件非常复杂. 技术门槛很高的事情. 比如有人认为学爬虫必须精通 Python ,然后哼哧哼哧系统学习 Python 的每个知识点,很久之 ...

  4. 用python 爬取百度百科内容-使用python爬取小说全部内容

    爬取代码为import urllib.request from bs4 import BeautifulSoup #coding: utf-8 class xiaoShuo(): def __init ...

  5. 如何使用python爬取百度图片_【Python】爬取百度图片进行人脸识别

    importos,cv2,requests,json,re,timeimporttensorflow as tffrom bs4 importBeautifulSoupdefcheck_path(pa ...

  6. python爬虫之爬取百度网盘

    爬虫之爬取百度网盘(python) #coding: utf8 """ author:haoning create time: 2015-8-15 "" ...

  7. Python爬虫实战之爬取百度贴吧帖子

    Python爬虫实战之爬取百度贴吧帖子 大家好,上次我们实验了爬取了糗事百科的段子,那么这次我们来尝试一下爬取百度贴吧的帖子.与上一篇不同的是,这次我们需要用到文件的相关操作. 本篇目标 对百度贴吧的 ...

  8. Python爬虫实战之爬取百度音乐歌曲

    Python爬虫爬取百度音乐歌曲 整体思路如下: 1.搜索:通过搜索界面输入歌手名字找到歌手的歌曲信息.千千音乐:网址 2.找到歌曲信息:通过遍历歌曲列表信息界面获取每个歌曲的ID,以及歌曲的总数 3 ...

  9. 用python 爬取百度百科内容-爬虫实战(一) 用Python爬取百度百科

    最近博主遇到这样一个需求:当用户输入一个词语时,返回这个词语的解释 我的第一个想法是做一个数据库,把常用的词语和词语的解释放到数据库里面,当用户查询时直接读取数据库结果 但是自己又没有心思做这样一个数 ...

最新文章

  1. Linux之Vsftpd虚拟用户、扩展应用tcp_wrapper实验总结
  2. 微信企业号开启回调模式--php
  3. swift_007(Swift的Array 数组)
  4. iOS应用开发入门(3)——点击button控制textview
  5. python的init有什么用_Python中 __init__.py的作用
  6. 三层架构介绍和MVC设计模型介绍
  7. 闲鱼直播三周内实现点击率翻倍,我们是这么做到的...
  8. 《嵌入式C编程:PIC单片机和C编程技术与应用》一第1章C语言概述和程序结构1.1 C源代码...
  9. python兔子和獾_少儿编程分享:手把手教你用PYTHON编写兔獾大作战(三)
  10. 413 Request Entity Too Large 异常记录
  11. thoughtworks面试流程
  12. 打字时禁用触摸板_触摸打字感觉不错,但不适合我
  13. python多任务,线程详解
  14. Do带你解析:原生APP与web APP的区别
  15. Inspector检视视图
  16. 18650圆柱锂电池comsol5.6模型 参数已配置,电化学生热研究,三种放电倍率
  17. candence pcb走线等长_PCB走线角度选择 - PCB Layout 跳坑指南 - 吴川斌的博客
  18. 四舍五入VS银行家舍入 (四舍六入五取偶)
  19. 抑或运算符(位运算和逻辑运算符详解)----Java
  20. 扯淡 | 如何判断一家公司是否靠谱

热门文章

  1. Arcgis中怎么进行遥感影像的标准分幅
  2. java程序占用cpu100%问题查找方案
  3. Mathematica绘制动态蔓叶线
  4. Lisp for Small Prices
  5. pipeline设计模式
  6. “80后”古宅修复者辗转5省 用匠心唤醒老宅魅力
  7. 免费获取华夏邓白氏编码(021-26107504)
  8. 【javascript-基础小练习】开发一款软件,根据公式(身高-108)*2=体重,可以有10斤左右的浮动。来观察测试者体重是否合适
  9. el-radio-group change事件获取老值
  10. Influx 产品常见问题及使用技巧(3)