首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

基础爬虫案例:Python爬取百度贴吧内容

Python版本 : 3.6 浏览器版本: Chrome

目标分析:

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

从网上爬下特定页码的网页。

对于爬下的页面内容进行简单的筛选分析。

找到每一篇帖子的 标题、发帖人、日期、楼层、以及跳转链接。

将结果保存到文本。

前期准备: 看到贴吧的url地址是不是觉得很乱?有那一大串认不得的字符?

其实这些都是中文字符, %E8%A5%BF%E9%83%A8%E4%B8%96%E7%95%8C

在编码之后就是: 西部世界。

链接的末尾处:&ie=utf-8 表示该连接采用的是utf-8编码。

windows的默认编码是GBK,在处理这个连接的时候,需要我们在Python里手动设置一下,才能够成功使用。

Python3相对于Python2对于编码的支持有了很大的提升,默认全局采用utf-8编码,所以建议还在学Python2的小伙伴赶紧投入Python3的怀抱,真的省了老大的功夫了。

接着我们翻到贴吧的第二页: url: https://tieba.baidu.com/f?kw=%E8%A5%BF%E9%83%A8%E4%B8%96%E7%95%8C&ie=utf-8&pn=50

注意到没有,连接的末尾处多了一个参数&pn=50, 这里我们很容易就能猜到,这个参数的与页码的联系:

&pn=0 : 首页

&pn=50: 第二页

&pn=100:第三页

&pn=50*n 第n页

50 表示 每一页都有50篇帖子。

这下我们就能通过简单的url修改,达到翻页的效果了。

chrome开发人员工具的使用:

要写爬虫,我们一定要会使用开发工具,说起来这个工具是给前端开发人员用的,但是我们可以通过它快速定位我们要爬取的信息,并找到相对应的规律。

按cmmand+option+I 打开chrome工具,(win可以看按F12或者手动在chrome工具栏里打开)

使用模拟点击工具快速定位到一个单独帖子的位置。(左上角的鼠标箭头图标)

我们仔细的观察一下,发现每个帖子的内容都包裹在一个li标签内。

这样我们只要快速找出所有的符合规则的标签,在进一步分析里面的内容,最后筛选出数据就可以了。

内容分析

我们先写出抓取页面内容的函数:

这是前面介绍过的爬取框架,以后我们会经常用到。

接着我们摘取其中的详细信息:

我们来分一下每一个li标签内部的结构:一个大的li标签内包裹着很多个 div标签,而我们要的信息就在这一个个div标签之内:

分析完之后,我们就能很容易的通过soup.find()方法得到我们想要的结果。

具体代码的实现:

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181220A0EMFL00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券