记录一下爬虫学习爬取贴吧图片,按照以下b站视频教学,2021/1/27亲测有效,不会被封ip。
Python爬虫实战讲解:爬取百度贴吧全站图片

结果如下(手动打码):

源代码和笔记如下:

#多页爬取'''
需要环境
requests,parsel(xpath)步骤
1.确定url地址
2.发送请求
3.解析数据(数据筛选)<两层数据解析>
4.保存数据(本地文件)
'''#requests实现帮助请求数据的要求
import requests
import parselpage_num = 0
#换页
for page in range(0,55000+1,50):page_num+=1print('===========================正在爬取第{}页数据===================='.format(str(page_num)))#1.确定url地址#先确定它是静态网页还是动态网页#静态网页:源代码都有网页的数据,并且没有经过浏览器的渲染以及加载#判断静态数据:在源代码中搜索的到url = 'https://tieba.baidu.com/f?ie=utf-8&kw=%E7%BA%A6%E4%BC%9A%E5%90%A7&fr=search&pn={}'.format(str(page))#之后准备请求参数#刷新页面后,Chrome的Network栏所有的数据包都可以呈现#user-agent更换为了ie浏览器,方便后面的操作headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WoW64; Trident/7.0; rv:11.0) like Gecko'}#2.发送请求response = requests.get(url,headers=headers)#状态码:200左右表示请求成功,300左右表示重定向,400左右表示URL地址有错误,500左右表示服务器错误html_data = response.text #字符串类型数据,只能使用正则表达式#print(html_data)#3.解析数据(数据筛选)<两层数据解析>#为了获得最高清的图片,而不是缩略图#数据解析第一层:解析所有帖子的《链接》#将字符串数据转换成Selector对象;该对象有re(正则表达式),css选择器,xpath路径选择器html = parsel.Selector(html_data)#print(html)#两个/(双斜杠)表示跨节点提取,[@...]通过标签的属性值进行精确定位,标签层级递增的关系/div/a...,取到标签后获得href属性#同样也返回Selector对象,getall提取出解析到的数据title_url = html.xpath('//div[@class="threadlist_lz clearfix"]/div/a/@href').getall()#部分url的地址,和前面的地址拼接起来去实现#print(title_url) #['/p/7203233304', '/p/7197583050'...]#拼接url地址#前半部分的urlsecond_url = 'https://tieba.baidu.com'for url in title_url:all_url = second_url + urlprint('当前的帖子链接为:', all_url)# 第二层:再发送一次url请求,获得页面数据,随后解析出图片地址#再次发送请求,请求帖子内部的数据response_2 = requests.get(url=all_url,headers=headers).text#第二次解析response_2_data = parsel.Selector(response_2)result_list = response_2_data.xpath('//cc/div/img[@class="BDE_Image"]/@src').getall()#print(result_list) #['http://tiebapic.baidu.com/forum/w%3D580/sign=d941e7678413b07ebdbd50003cd69113/4d456709c93d70cf1974ca4befdcd100bba12b60.jpg', 'http://tiebapic.baidu.com/forum/w%3D580/sign=b6dbbb9a1ffa513d51aa6cd60d6c554c/b74ee5dde71190ef5192bc99d91b9d16fcfa6081.jpg']for li in result_list:#图片数据,需要content(二进制数据)img_data = requests.get(url=li,headers=headers).content#4.保存数据(本地文件)#图片的文件名和后缀#'http://tiebapic.baidu.com/forum/w%3D580/sign=d941e7678413b07ebdbd50003cd69113/4d456709c93d70cf1974ca4befdcd100bba12b60.jpg'file_name = li.split('/')[-1]#\\表示把文件保存到该文件夹下,mode文件写入方式(二进制wb)with open('img\\'+file_name,mode='wb') as f:f.write(img_data)print("正在保存:",file_name)

入门学习爬取贴吧图片(附完整代码),2021/1/27有效相关推荐

  1. chrome动态ip python_用Python爬虫爬取动态网页,附带完整代码,有错误欢迎指出!...

    系统环境: 操作系统:Windows8.1专业版 64bit Python:anaconda.Python2.7 Python modules:requests.random.json Backgro ...

  2. 【爬虫】Python爬取电商平台评论完整代码

    利用Ajax爬取淘宝评论,这里完整的补充一下,包括数据存储. 对于Ajax参数的分析,Python爬取平台评论,这篇文章分析过了这里不再重复了. 主要是完善一下代码. import time impo ...

  3. java正则表达式爬图片_Java正则表达式爬取网页,贴出完整代码

    import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.ope ...

  4. Python 使用Tkinter制作签名(附完整代码)

    思路: 先选择在线签名网站,找到接口模拟请求,然后将生成的签名图片显示在 Tkinter 生成的 GUI 窗口上,最后保存生成的签名图片 选择网址为:http://www.uustv.com/ 首先了 ...

  5. 想要快速爬取整站图片?速进(附完整代码)

      大家好,我是不温卜火,是一名计算机学院大数据专业大三的学生,昵称来源于成语-不温不火,本意是希望自己性情温和.作为一名互联网行业的小白,博主写博客一方面是为了记录自己的学习过程,另一方面是总结自己 ...

  6. Python爬虫菜鸟入门,爬取豆瓣top250电影 (自己学习,如有侵权,请联系我删除)

    Python爬虫菜鸟入门,爬取豆瓣top250电影 (自己学习,如有侵权,请联系我删除) import requests from bs4 import BeautifulSoup import ti ...

  7. 爬取每日必应图片,python爬虫简单入门

    爬取每日必应图片: 网址:微软必应搜索 第一步,打开网站: 右键,查看网页源代码: 初看有点吓人,不过幸运的是图片地址就在开头几行显眼的位置 ![在这里插入图片描述](https://img-blog ...

  8. Python爬虫入门——爬取贴吧图片

    最近忽然想听一首老歌,"I believe" 于是到网上去搜,把几乎所有的版本的MV都看了一遍(也是够无聊的),最喜欢的还是最初版的<我的野蛮女友>电影主题曲的哪个版本 ...

  9. 爬取街拍图片_如何拍摄好街拍照片

    爬取街拍图片 Street photography is about documenting the day to day life of a city. It's about capturing t ...

最新文章

  1. 漫话:全球 IPv4 地址正式耗尽?是时候说说到底什么是IPv4和IPv6了!
  2. 探索 YOLO v3 实现细节 - 第6篇 预测 (完结)
  3. %date:~0,10%用法
  4. Minty Fresh : So You Want To Write An Orchestration?
  5. 计算机体系结构 第一章
  6. nginx怎么用_后端服务老是重启,前端该如何拯救自己?nginx的妙用
  7. 加点自已内容的新内核下L7-FILTER的应用实例!
  8. PHP函数调用的新的用法
  9. 搭建vue脚手架_webpack搭建vue脚手架
  10. OEM信息自定义工具v2.0
  11. 一个ExtJs的最基本的mvc模式示例
  12. 【物联网中间件平台-03】YFIOs安装指南
  13. 高斯分布函数c语言编程,c语言 写高斯分布函数
  14. OpenMP与C++ 事半功倍地获得多线程的好处 下
  15. Spreadjs表格
  16. nodejs动态加载代码
  17. js增量更新算法研究
  18. html多张图片合成一张,PS照片合成:多张照片合成一张
  19. web端如何获取笔压 web端获取笔压的js库
  20. 完了!生产事故!几百万消息在消息队列里积压了几个小时!

热门文章

  1. python中if和else语句的格式要求_Python小白入门:if测试和语法规则
  2. STM32串口接收数据处理方法
  3. deepin因NVIDIA显卡造成开机启动问题:卡在开机logo界面+进入桌面鼠标一直转圈
  4. 【mac】「终端查看完整命令记录」「提示软件已损坏,无法打开」「sip~」「Vcsa安装」「errno 30」「E325」
  5. Deepin安装过程中无法进入安装引导,求助
  6. 更轻量级的可视化引擎库
  7. HR给程序员挖坑:离职证明写被裁,才能拿补偿!
  8. OTA升级包的解释和升级方法
  9. php html ubb,php处理ubb函数_PHP教程
  10. 用 me.alipay.com 制作我的支付宝捐款页面