爬取糗事百科图片(正则案例)
首先前面来到糗事百科中的热图页面。然后右键检查打开浏览器的抓包工具,如下图所示:
通过对请求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,"下载成功")
打开文件夹如图所示,就可以查看我们爬取的图片了
爬取糗事百科图片(正则案例)相关推荐
- 爬虫爬取糗事百科图片数据
如图,爬取所有图片,不包含文字 通过抓包工具可知每一张图片所在div的class="thumb",利用正则表达式 ex = '<div class="thumb&q ...
- python+正则+多进程爬取糗事百科图片
话不多说,直接上代码: # 需要的库 import requests import re import os from multiprocessing import Pool # 请求头 header ...
- python+BeautifulSoup+多进程爬取糗事百科图片
用到的库: import requests import os from bs4 import BeautifulSoup import time from multiprocessing impor ...
- JavaScript获取本机浏览器UA助力Python爬取糗事百科首页
问题背景: 使用Python编写爬虫时,经常会遇到反爬机制,例如网站要求必须使用浏览器访问.就像下面的403错误: 或者下面这种错误信息: 一般来说,这是遇到反爬机制了,对方要求使用浏览器访问.这时可 ...
- 转 Python爬虫实战一之爬取糗事百科段子
静觅 » Python爬虫实战一之爬取糗事百科段子 首先,糗事百科大家都听说过吧?糗友们发的搞笑的段子一抓一大把,这次我们尝试一下用爬虫把他们抓取下来. 友情提示 糗事百科在前一段时间进行了改版,导致 ...
- Python爬虫学习笔记 -- 爬取糗事百科
Python爬虫学习笔记 -- 爬取糗事百科 代码存放地址: https://github.com/xyls2011/python/tree/master/qiushibaike 爬取网址:https ...
- pythonscrapy爬虫 崔庆才_Python爬虫实战一之爬取糗事百科段子
大家好,前面入门已经说了那么多基础知识了,下面我们做几个实战项目来挑战一下吧.那么这次为大家带来,Python爬取糗事百科的小段子的例子. 首先,糗事百科大家都听说过吧?糗友们发的搞笑的段子一抓一大把 ...
- Python爬虫实战一之爬取糗事百科段子
点我进入原文 另外, 中间遇到两个问题: 1. ascii codec can't decode byte 0xe8 in position 0:ordinal not in range(128) 解 ...
- 012:pyquery介绍与实战爬取糗事百科猫眼排行
很久没更新了.最近一直在使用pyquery做一些小爬虫文件.个人感觉是值得推荐的,本篇我来介绍下pq的用法及其实战.内容主要以代码为主. PyQuery库也是一个非常强大又灵活的网页解析库,如果你有前 ...
最新文章
- 网上书城java负责_网上书城项目总结(servlet_jsp+javaBean)
- 【动态规划BFS】相遇
- 利用python脚本程序监控文件被修改
- python字符串定义符_python入门——定义字符串
- MySQL高级-索引
- Java多线程学习总结(6)——深入理解悲观锁与乐观锁
- python写入文件不覆盖_Python第7课:不一样的新建文件
- 云络科技服务器管理基础架构
- ROMMON下IOS的恢复
- CSS实现字体镂空效果、阴影效果、字体阴影效果
- java fileupload_java组件fileupload
- 2021-2025年中国DNA基因芯片行业市场供需与战略研究报告
- linux定时清理临时目录,tmp临时文件目录自动清理
- “另类”计算IP地址和子网划分
- android仿简书编辑器,自己写一个类似知乎编辑器的编辑器(3)
- 通常所说微型计算机的奔3,求江西省2011年计算机等级一级考试试题
- 132、网管型和非网管型交换机有什么区别
- 一套代码,快速实现一个语音聊天室
- 电脑手机桌面记事用什么?
- 联想RQ940升级bios