爬取百度贴吧图片-python-requests
爬取百度贴吧图片
百度贴吧地址:
- 以‘’校花吧‘’举例
- https://tieba.baidu.com/f?kw=%D0%A3%BB%A8&fr=ala0&tpl=5
你打开的校花吧的地址可能是这个样子的,
注意看url中的参数
kw:代表的是你进入贴吧的名字
其他的都没有用,可以都删除(删除之后可照常访问)
https://tieba.baidu.com/f?kw=%D0%A3%BB%A8
PS:
这里需要注意:其实你把kw的值改成中文:校花
照常也正常访问
地址为https://tieba.baidu.com/f?kw=校花
为什么都能访问呢?
答:是因为url地址是自动将中文做了编码而已
**
途中就是我们最终要爬取的图片
**
分析:看到后不难发现当前这个网页里虽然有图片,但是图片仅有页面展示的这几张,其实发表的每个贴吧的标题里面点进去,会有很多评论者发表的图片,里面这些我们看不到。
结论:想要爬取的全面一些,我们就要爬到每个标题里面的所有的图片。这样就需要请求每个标题的url网址,从里面再进行爬取所有的图片
爬取思路
- 第一步:爬取第一个url网页中的所有的标题的url地址
- 第二部:分别从每个url中再进行爬取里面的图片
# -*- coding: utf-8 -*-
# @Author : Mr.Cao
# @Time : 2021/4/6 14:30
# @Function:
import requests
import re
import randomclass BaiDuTieBa:def __init__(self):self.url = 'https://tieba.baidu.com/f?'self.headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) ''Chrome/88.0.4324.150 Safari/537.36 '}self.params = {}# 接受请求def response_html(self, url, params):response_html = requests.get(url, params=params, headers=self.headers)response_html.encoding = 'utf-8'response_html = response_html.text# print(response_html)return response_html# 分析解析主贴吧网页的请求def parse_html(self, res):list_href = re.compile('<div class="threadlist_title pull_left j_th_tit ">.*?href="(.*?)"', re.S)list_href = list_href.findall(res)return list_href# 分析解析每个标题请求def parse_picture(self, res):list_src = re.compile('<img class="BDE_Image" src="(.*?)"', re.S)list_src = list_src.findall(res)print(list_src)return list_src# 写入文件夹def write_page(self, content):img_name = str(int(random.random() * 100000)) + '.jpg'with open(img_name, 'wb') as f:f.write(content)print("{}下载完毕".format(img_name))# 运行函数def work(self):params = input("请输入要爬取的贴吧名字:")pn = input("请输入要爬取的页数:")self.params['kw'] = params# 按页爬取图片for i in range(0, int(pn)):page_num = i * 50self.params['pn'] = page_numprint(self.params)res = self.response_html(self.url, self.params)href_list = self.parse_html(res)print("爬取到的第{}页的标题href".format(i + 1), href_list)url_base_picture = "https://tieba.baidu.com"for href in href_list:url_picture = url_base_picture + hrefprint("开始爬取标题网址为:{}".format(url_picture))res_picture = requests.get(url_picture, headers=self.headers)res_picture.encoding='utf-8'src_list = self.parse_picture(res_picture.text)for src in src_list:res_src = requests.get(src, headers=self.headers)picture_content = res_src.contentself.write_page(picture_content)print("第{}页爬取成功".format(i + 1))if __name__ == '__main__':baiduTieBa = BaiDuTieBa()baiduTieBa.work()
运行之后输入你想爬取的贴吧的名字
以pycharm作为IDE举例:
开始爬取了:
等着爬取完就好了,,,简单的小爬虫就做好了。后期考虑做一下多线程的,因为这个爬取太慢了。太耗时间,如果要爬取100多页的话,需要等很长时间。之后用redis做一个多线程爬虫,敬请期待!!!
爬取百度贴吧图片-python-requests相关推荐
- python爬虫爬取百度贴吧图片,requests方法
每天一点点,记录学习 近期爬虫项目,看完请点赞哦---: 1:python 爬取菜鸟教程python100题,百度贴吧图片反爬虫下载,批量下载 2:python爬虫爬取百度贴吧图片,requests方 ...
- python爬取百度搜索_使用Python + requests爬取百度搜索页面
想学一下怎样用python爬取百度搜索页面,因为是第一次接触爬虫,遇到一些问题,把解决过程与大家分享一下 1.使用requests爬取网页 首先爬取百度主页www.baidu.com import r ...
- python爬取汽车之家图片,Python requests 爬取汽车之家全部品牌logo,urllib下载到本地...
首先是汽车之家品牌页面的HTML 我们定位到图片那个位置,这个img标签的src加上https就是图片完整的地址 那么品牌名称就是下面那个p标签的text 接下来我们的目的就是从中取出src和text ...
- python爬取贴吧所有帖子-Python实现的爬取百度贴吧图片功能完整示例
本文实例讲述了Python实现的爬取百度贴吧图片功能.分享给大家供大家参考,具体如下: #coding:utf-8 import requests import urllib2 import urll ...
- python爬取帖吧图片实验报告,Python爬取百度贴吧图片
原标题:Python爬取百度贴吧图片 作者:MTbaby 来源:http://blog.csdn.net/mtbaby/article/details/70209729 描述:用Python爬去百度贴 ...
- 测试爬虫 爬取百度贴吧 爬取百度搜图图片
测试爬取百度贴吧图片 定义爬取百度斗图吧首页的每条贴子的URL的爬取规则对象 /*** 斗图吧贴子的url*/SpiderFunction<Set<String>> doutu ...
- 入门级别的Python爬虫代码 爬取百度上的图片
简单讲解下python爬取百度图片的方法还有一些小坑(ps:我是搞.net的所以python只是新手讲错勿怪,注意:系统是windows下的) 首先讲下对百度图片上请求的分析:这里我引用下别人的博客, ...
- Python爬虫,爬取百度贴吧图片和视频文件,xpath+lxml,访问被拒的原因分析
目录 百度贴吧图片和视频文件爬取程序 1.需求分析 2.url分析 3.Xpath分析 4.程序设计 5.坑点 百度贴吧图片和视频文件爬取程序 1.需求分析 进入百度贴吧,搜索周杰伦,进入周杰伦吧.我 ...
- python爬取百度贴吧xpath_爬虫基础系列xpath实战——爬取百度贴吧图片(3)
8586231_192932724000_2.jpg #百度贴吧图片爬虫 # 爬取步骤:1.基础设置,2.构造url,3.爬取页面,4.解析页面,5.保存页面 # 采取urllib爬取 #引入必要的包 ...
最新文章
- DRV8834用于驱动双电机
- 想开网店?向你推荐最好的开源电子商务平台
- 职高计算机专业可以考本科吗,职业高中和普通高中的区别 职业高中能考本科吗...
- Ruby on Rails 實戰聖經阅读(三)
- 左神算法:生成窗口最大值数组(Java版)
- User status profile field in WebUI
- ubuntu18.04虚拟机突然连不上网
- 获取本地ip(一个或多个都能取)
- 自然语言处理——用逻辑回归来实现情绪识别
- ubuntu录制屏幕傻瓜操作 ubuntu screen capture
- Taro小程序 Input组件focus属性失效解决方案
- 数据结构学习——RBT(红黑树)以及实现Map和Set
- win7如何安装无线网卡驱动程序?具体安装步骤
- Android开发唯一的出路:进阶学习,附超全教程文档
- Python亲戚计算器
- 【vultr使用流程笔记】
- 这些年我们错过了什么
- python plot坐标轴显示比例一致,Matplotlib-固定x轴比例和自动缩放y轴
- bilibili视频下载信息获取
- Jsp页面 实现删除修改