首先前面来到糗事百科中的热图页面。然后右键检查打开浏览器的抓包工具,如下图所示:

通过对请求headers与响应response与element的分析,我们可以了解到图片链接就在该地址栏的网址下的div标签下的img标签的src中。通过将链接在地址栏输入可以得到验证。然后我们就可以对一个个图片通过正则进行匹配了,通过使用 .*?来匹配一次任意字符串。注意大家写正则的时候,注意原字符串空格等都不要忽略了,否则可能导致匹配失败。我们要匹配的url类似如图所示的src属性:

分页爬取的时候,我们可以观察其他页面的url,下一页中例如https://www.qiushibaike.com/imgrank/page/2/
https://www.qiushibaike.com/imgrank/page/3/
通过地址栏输入,我们可以看到第一页同样有效
https://www.qiushibaike.com/imgrank/page/1/
好了。话不多说,更多分析都在以下代码中

mport requests
import re
import os
#爬取糗事百科中糗图板块下所有的糗图图片
if __name__ == "__main__":#创建一个文件夹,保存所有图片if not os.path.exists('./qiutulib'):os.mkdir('./qiutulib')headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36'}# url = 'https://www.qiushibaike.com/imgrank/'#设置一个通用的url模板url='https://www.qiushibaike.com/imgrank/page/%d'for  pageNum in range(1,3):new_url = format(url%pageNum)  #对应页面的url#使用通用爬虫对url对应的一整张页面进行爬取page_text=requests.get(url=new_url,headers=headers).text#使用聚焦爬虫将页面中所有的图片进行解析/提取ex = '<div class="thumb">.*?<img src="(.*?)" alt.*?</div>'# ex ='<html xmlns="http://www.w3.org/1999/xhtml">.*?</html>'img_src_list = re.findall(ex,page_text,re.S)  #re.S单行匹配,re.M多行匹配# print(img_src_list)for src in img_src_list:#拼接出一个完整的图片urlsrc = 'https:'+src#请求到了图片的二进制数据img_data = requests.get(url=src,headers=headers).content#生成图片名称img_name = src.split('/')[-1]#图片存储的路径imgPath = './qiutulib/'+img_namewith open(imgPath,'wb') as fp:fp.write(img_data)print(img_data,"下载成功")

打开文件夹如图所示,就可以查看我们爬取的图片了

爬取糗事百科图片(正则案例)相关推荐

  1. 爬虫爬取糗事百科图片数据

    如图,爬取所有图片,不包含文字 通过抓包工具可知每一张图片所在div的class="thumb",利用正则表达式 ex = '<div class="thumb&q ...

  2. python+正则+多进程爬取糗事百科图片

    话不多说,直接上代码: # 需要的库 import requests import re import os from multiprocessing import Pool # 请求头 header ...

  3. python+BeautifulSoup+多进程爬取糗事百科图片

    用到的库: import requests import os from bs4 import BeautifulSoup import time from multiprocessing impor ...

  4. JavaScript获取本机浏览器UA助力Python爬取糗事百科首页

    问题背景: 使用Python编写爬虫时,经常会遇到反爬机制,例如网站要求必须使用浏览器访问.就像下面的403错误: 或者下面这种错误信息: 一般来说,这是遇到反爬机制了,对方要求使用浏览器访问.这时可 ...

  5. 转 Python爬虫实战一之爬取糗事百科段子

    静觅 » Python爬虫实战一之爬取糗事百科段子 首先,糗事百科大家都听说过吧?糗友们发的搞笑的段子一抓一大把,这次我们尝试一下用爬虫把他们抓取下来. 友情提示 糗事百科在前一段时间进行了改版,导致 ...

  6. Python爬虫学习笔记 -- 爬取糗事百科

    Python爬虫学习笔记 -- 爬取糗事百科 代码存放地址: https://github.com/xyls2011/python/tree/master/qiushibaike 爬取网址:https ...

  7. pythonscrapy爬虫 崔庆才_Python爬虫实战一之爬取糗事百科段子

    大家好,前面入门已经说了那么多基础知识了,下面我们做几个实战项目来挑战一下吧.那么这次为大家带来,Python爬取糗事百科的小段子的例子. 首先,糗事百科大家都听说过吧?糗友们发的搞笑的段子一抓一大把 ...

  8. Python爬虫实战一之爬取糗事百科段子

    点我进入原文 另外, 中间遇到两个问题: 1. ascii codec can't decode byte 0xe8 in position 0:ordinal not in range(128) 解 ...

  9. 012:pyquery介绍与实战爬取糗事百科猫眼排行

    很久没更新了.最近一直在使用pyquery做一些小爬虫文件.个人感觉是值得推荐的,本篇我来介绍下pq的用法及其实战.内容主要以代码为主. PyQuery库也是一个非常强大又灵活的网页解析库,如果你有前 ...

最新文章

  1. 网上书城java负责_网上书城项目总结(servlet_jsp+javaBean)
  2. 【动态规划BFS】相遇
  3. 利用python脚本程序监控文件被修改
  4. python字符串定义符_python入门——定义字符串
  5. MySQL高级-索引
  6. Java多线程学习总结(6)——深入理解悲观锁与乐观锁
  7. python写入文件不覆盖_Python第7课:不一样的新建文件
  8. 云络科技服务器管理基础架构
  9. ROMMON下IOS的恢复
  10. CSS实现字体镂空效果、阴影效果、字体阴影效果
  11. java fileupload_java组件fileupload
  12. 2021-2025年中国DNA基因芯片行业市场供需与战略研究报告
  13. linux定时清理临时目录,tmp临时文件目录自动清理
  14. “另类”计算IP地址和子网划分
  15. android仿简书编辑器,自己写一个类似知乎编辑器的编辑器(3)
  16. 通常所说微型计算机的奔3,求江西省2011年计算机等级一级考试试题
  17. 132、网管型和非网管型交换机有什么区别
  18. 一套代码,快速实现一个语音聊天室
  19. 电脑手机桌面记事用什么?
  20. 联想RQ940升级bios

热门文章

  1. NLP学习笔记-FastText文本分类(四)
  2. javanbsp;学习过程
  3. Educoder_Web_移动端电商页面制作
  4. 一款跨平台小巧的端口爆破工具
  5. OSChina 娱乐弹弹弹——凉风有信,秋月无边
  6. 【Flask学习】1.2Flask的工作方式
  7. 7.4 小团队、低成本的管理实践之路
  8. 阿里云-网站备案基本流程(2019.7)
  9. 自动控制原理《拉氏变换》
  10. 微积分入门书籍(一)