基于scrapy框架输入关键字爬取有关贴吧帖子

基于scrapy框架输入关键字爬取有关贴吧帖子

站点分析

首先进入一个贴吧,要想达到输入关键词爬取爬取指定贴吧,必然需要利用搜索引擎
进入贴吧
点进看到有四种搜索方式,分别试一次,观察url变化
搜索页面
我们得知:
搜索贴吧:http://tieba.baidu.com/f/search/fm?ie=UTF-8&qw=dfd
搜索帖子:http://tieba.baidu.com/f/search/res?ie=utf-8&qw=dfd
其中参数qw是搜索关键词,由此我们可以构建搜索贴吧的url
获取贴吧
搜索得到的页面,可以得到我们需要的贴吧url
贴吧
我们就可以轻而易举的得到我们搜索的相关贴吧

下面对贴吧主页进行分析
进入贴吧F12查看

显然我们知道#thread_list这个列表,观察看到这就是每个贴在,注意li标签里的data-field字段有我们需要的信息, 不过我们只需要得到帖子的url,之后对帖子进一步提取,其中data-tid就是贴子的id,通过这个我们可以定位唯一的帖子
如data-tid=“6410699527”, 则帖子的url为teiba.baidu.com/p/6410699527具体的探索过程就不一一阐述了。。。

对帖子分析
在这里插入图片描述
在这里插入图片描述
直接源码省去很多字、、、的寻找过程,我们在源码找到了一段JavaScript代码,其中firstpost就是楼主发的帖子。。为什么不在HTML便签中提取?因为你试试就知道了,开始我就是在HTML便签中提取的,部分贴吧标题提取不出来。firstpost有着很详细的信息,标题,内容,时间
现在对贴吧的回复贴吧提取:
在这里插入图片描述
探索得知,很多带有表情的回复帖,内容很乱,打算正则提取。。。
一个小白的分析过程想的多,看的慢,难受!这里就不在阐述了,不然分析过程写不下

items.py编写

在这个模块里定义自己的字段,这里我们需要帖子的标题,内容,作者,时间,回复数,回复内容
源码:
# -*- coding: utf-8 -*-
import scrapy

class postDataItem(scrapy.Item):
    tid = scrapy.Field()
    title = scrapy.Field()
    content = scrapy.Field()
    author_name = scrapy.Field()
    date = scrapy.Field()
    reply_content = scrapy.Field()
    reply_num = scrapy.Field()
    device = scrapy.Field()#这给字段读者不必关注,项目所需

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

coderChen01

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值