Python运用正则解析爬取糗事百科图片

Posted 汤米先生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python运用正则解析爬取糗事百科图片相关的知识,希望对你有一定的参考价值。


前言

这只是一个基础的爬取图片过程,其他图片的爬取大致过程也是这样


爬取原理

图片爬取属于聚焦爬虫,其编码流程大致如下:

  1. 指定url
  2. 发起请求
  3. 获取相应数据
  4. 数据解析
  5. 持久化存储、

过程:首先要进入 糗事百科 网页,按F12进入爬虫工具页面,通过检查可以发现,图片都存在class =“thumb”的div中,但是这个div中不只是有图片,而且还有图片介绍,我们可以写一段 正则表达式 用来对img单独提取

ex = '<div class="thumb">.*?<img src="(.*?)" alt.*?</div>'

代码

import requests
import re
import os
url ='https://www.qiushibaike.com/imgrank/'
if not os.path.exists('./qiutu'):
    os.mkdir('./qiutu')
headers ={
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/92.0.4515.107 Safari/537.36 Edg/92.0.902.55'
}
#使用通用爬虫对URL对应一整张页面进行爬取
page_text = requests.get(url=url,headers=headers).text
#使用聚焦爬虫将页面中所有的糗图进行解析提取
ex = '<div class="thumb">.*?<img src="(.*?)" alt.*?</div>'
img_src_list = re.findall(ex,page_text,re.S)
for src in  img_src_list:
 #拼接出一个完整的图片url
    src='https:'+src
 # 请求到图片的二进制数据
    img_data = requests.get(url=src,headers=headers).content
 # 生成图片名称
    img_name = src.split('/')[-1]
 # 存储路径
    imgPath = './qiutu/'+img_name
    with open(imgPath,'wb') as fp:
        fp.write(img_data)
        print(img_name,'打印成功!')

爬取结果

以上是关于Python运用正则解析爬取糗事百科图片的主要内容,如果未能解决你的问题,请参考以下文章

python—多协程爬取糗事百科热图

使用Python爬取糗事百科热门文章

正则爬取糗事百科热图

芝麻HTTP:Python爬虫实战之爬取糗事百科段子

Python爬虫:爬取糗事百科

爬取糗事百科的图片