千家信息网

python中怎么利用requests爬取百度贴吧用户信息

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,本篇文章为大家展示了python中怎么利用requests爬取百度贴吧用户信息,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1.安装需要的工具包:reques
千家信息网最后更新 2026年10月31日python中怎么利用requests爬取百度贴吧用户信息

本篇文章为大家展示了python中怎么利用requests爬取百度贴吧用户信息,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

1.安装需要的工具包:

requests包,这个主要是用来发送get或者post请求,获取请求结果

pip install requests

beautifulSoup包,这个主要是用来解析得到的html页面的,方便简单,但是这个包效率低

除了这个包,还可以去尝试用xpath,css选择器,甚至正则去解析,只要你喜欢,用什么解析都可以,本次使用beautifulSoup包

pip install bs4

pymongo,这个python操作mongodb的工具包,在爬虫中,因为爬下来的数据有一部分是脏数据,所以比较适合使用非关系型数据库存储,mongodb就是一个非关系数据库

pip install pymongo

因为我使用的是一款云数据库所以需要安装一下dnspython,如果不是用mongodb官网提供的云数据库,不需要安装这个

pip install dnspython

2.分析页面

首先进入python吧

此时页面链接是http://tieba.baidu.com/f?ie=utf-8&kw=python&fr=search&red_tag=s3038027151

我们点击下一页,多点击几次,然后上一页,回到首页

发现链接http://tieba.baidu.com/f?kw=python&ie=utf-8&pn=0,http://tieba.baidu.com/f?kw=python&ie=utf-8&pn=0

在多个链接中,我们发现规律kw是搜索的关键字,pn是分页,第一页是0,第二页是50,第三页是100,此时我们根据这种规律拼接出来url链接,放到postman中请求,发现规律是对的。这样我们就可以发送请求去抓取列表页了。

现在我们抓取到列表页了,那么怎么获取用户信息呢。

这时我发现鼠标放到此处时会弹出用户的相关信息,所以此处应该可能会有一个请求用户信息的接口

现在我们打开开发者工具,重新把鼠标放到此处时,

果然发现了请求,结果为json数据,然后将结果复制到json在线这个网站解析,然后发现正是我们想要的数据,(这里就不贴数据了)

此时我们分享这个请求http://tieba.baidu.com/home/get/panel?ie=utf-8&un=du_%E5%B0%8F%E9%99%8C

在请求多人后,发现是根据un这个参数去区分不同的人的,在下图中列出了un这个参数,根据经验可知,这个应该用户的注册用户名,

那么我们从哪里获取这个字段呢,

既然它根据这个字段请求了后端接口,那么页面上肯定有这个字段,这时候我们打开开发者工具,查看源代码,在页面定位到这个元素,然后我们发现

un字段就在这里,那么我们就可以用这个字段去拼接url了,通过测试后,发现正确

3.代码

爬虫分析完了,这时候就要开始写代码了

首先请求页面,

发送请求,然后parseList()












def tiebaSpider(self,key,beginPage,endPage):    #配置url请求链接和请求头    beginPage = (beginPage - 0) * 50    endPage = (endPage+1) * 50    headers = {        "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36"}    for page in range(beginPage,endPage,50):        url="http://tieba.baidu.com/f?kw=%s&ie=utf-8&pn=%s"%(key,page)        #发送get请求        response=requests.get(url,headers=headers)        self.parseList(response.text)

解析贴吧页面:

利用beautifulSoup解析页面,

find()函数查找一条符合的数据,第一个参数为html的标签; 如果根据id找,则使用id参数

find_all()查找所有符合的数据,如果根据class去找,则使用class_参数,

如果直接根据标签去找,则不需要id或者class_参数,下面的方法都有用到

在解析中,我先找到了a标签,然后提取其的href数据,提取方式为a['href']

获取属性值后进行切割,切割的是?un=之后和第一个&之前的数据,

如果这个数据不为空,则发送请求获取用户信息


















def parseList(self,response):        #解析列表页,创建bs4        soup =BeautifulSoup(response,'html.parser')        #根据页面解析获取ul标签        ul=soup.find("ul",id='thread_list')#获取下面的li标签        liList=ul.find_all('span',class_='frs-author-name-wrap')        #解析获取需要的数据        for li in liList:            a=li.find('a')            un=a['href'].split('&')[0].split('?un=')[-1]            if un!='' and un !=None:                #拼接请求了解,获取用户信息                response=requests.get("http://tieba.baidu.com/home/get/panel?ie=utf-8&un="+un)                print("http://tieba.baidu.com/home/get/panel?ie=utf-8&un="+un)                print(response.url)                self.parseDetail(response.text)

解析用户信息

因为这个是json数据,所以直接用json包去解析即可,然后存入mongodb中

#解析用户信息 def parseDetail(self,response): try: info=json.loads(response) #利用json的loads方法将json字符串转换成字典类型取值 data=info['data'] result = {} result['name']=data['name'] result['name_show']=data['name_show'] sex=data['sex'] if sex=='female': result['sex']='女' elif sex=='male': result['sex']='男' else: result['sex']='未知' result['tb_age']=data['tb_age'] result['id']=data['id'] result['post_num']=data['post_num'] result['tb_vip']=data['tb_vip'] result['followed_count']=data['followed_count'] self.collection.insert_one(result) except: pass

4.总结

到此整个项目做完了

但是依然有一些改进之处,我将思路和想法写下来,大家学习的时候,可以自己去尝试一下,

1.没有去做去重,这样会导致大量的重复数据

解决思路:可以将请求用户信息的了解进行保存,然后再次请求时,先去验证有没有请求过

2。反扒,在请求第二个链接时,会出现重定向,经过postman请求发现,不是链接的问题,那只能是频繁请求被封,

上述内容就是python中怎么利用requests爬取百度贴吧用户信息,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

数据 用户 信息 页面 链接 参数 字段 标签 工具 数据库 贴吧 结果 规律 百度贴吧 代码 内容 完了 就是 工具包 开发者 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 深圳互联网络科技有限公司 鑫亿盛互联网科技 未来的互联网科技 云电互联网科技 百单互联网科技有限公司 唐信互联网科技 大连 甘肃拓世互联网科技有限公司 互联网金融中的现代科技 厦门千工互联网科技有限公司 千方科技属于互联网企业吗 青岛科技大学互联网大赛研究生 知域互联网科技有限公司大骗子 注册互联网科技公司经营范围大全 消费医药和互联网科技 互联网科技大奖都有哪些公司 互联网科技研发水平 科技大学互联网 互联网科技手抄报图片 现代互联网科技公司 互联网企业和网络科技有限公司 互联网科技工作委员会毛军 互联网金融监管科技数据 友谊互联网络科技 湖南洣水互联网科技有限公司扣款 新华互联网科技2019 须眉科技是互联网公司吗 济南有互联网科技公司吗 为客找房互联网科技公司怎么样 互联网科技和医药行业 互联网科技创新创业项目
0