首页 > 其他分享 >爬取图片

爬取图片

时间:2024-11-28 23:33:58浏览次数:3  
标签:text resp 爬取 re child 页面 page 图片

步骤

1.拿到页面源代码,然后提取子页面的链接地址,href
2.通过href拿到子页面内容,从子页面找到图片的下载地址 img->src
3.下载图片

import requests
from bs4 import BeautifulSoup
import re
import time
url="https://moetu.club/category/illustration"
header={
    "user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36 QuarkPC/1.9.5.160"
}

resp=requests.get(url,headers=header)
resp.encoding='utf-8'

#把源代码交给bs
main_page=BeautifulSoup(resp.text,"html.parser")
archive_row=main_page.find("div",attrs={"class":"archive-row"})
obj=re.compile(f"<div class=\"post-info\">.*?<h2><a.*?href=\"(?P<address>.*?)\">(?P<title>.*?)</a></h2>",re.S)
ret=obj.finditer(str(archive_row))
for i in ret:
    #print(i.group("address")+i.group("title"))
    #拿到子页面的源代码
    child_page_resp=requests.get(i.group("address"),headers=header)
    child_page_text=child_page_resp.text
    #print(child_page_text)
    #从子页面拿到图片的下载路径
    child_page=BeautifulSoup(child_page_resp.text,"html.parser")
    p=child_page_content=child_page.find("div",attrs={"class":"entry-content"})
    #print(child_page_content)
    # obj2=re.compile(f"<img alt=.*?class=.*?data-src=\"(?P<address2>.*?)\" decoding=\"async\" src=.*?><",re.S)
    # ret2=obj2.finditer(str(p))
    # for j in ret2:
    #     print(j.group("address2"))



    img=p.find("img")
    data=img.get("data-src")
#     #下载图片
    img_resp=requests.get(data)
#     #img_resp.content #这里拿到的是字节
    img_name=data.split("/")[-1]#拿到url中的最后一个/以后的内容
    with open("img_/"+img_name,mode="wb") as f:
        f.write(img_resp.content) #图片内容写入文件
        print("over!"+img_name)
        time.sleep(0.25)
print("all over!")

标签:text,resp,爬取,re,child,页面,page,图片
From: https://www.cnblogs.com/quchen-blog/p/18575444

相关文章

  • python语言识别简体中文图片代码QZQ
    pipinstallpytesseractpipinstallpytesseractPillowpipinstallopencv-pythonpyautogui需要安装上面模块需要安装这个软件:tesseract-ocr-w64-setup-5.5.0.20241111.exeC:\ProgramFiles\Tesseract-OCR\tessdata\chi_sim.traineddata需要设置环境变量:C:\Program......
  • python语言识别图片内容代码QZQ
    importpytesseractfromPILimportImagedefimage_recognition(image_path):try:text=pytesseract.image_to_string(Image.open(image_path))iftext.strip():#如果识别出的文本去除空白字符后不为空,说明识别到了有效内容print(“识别成功”)print(text)else:......
  • el-upload实现上传图片/pdf,回显图片/pdf功能。
    el-upload实现上传图片/pdf,回显图片/pdf功能。功能背景:上传图片和查看图片要在一个页面。如何回显当前行数据已上传的文件?答:把请求获取的数据赋值给绑定的fileList<el-upload:action="url"multiplelist-type="picture-card":on-preview="handlePictureCar......
  • 深入解析:使用Python爬取Bilibili视频
    深入解析:使用Python爬取Bilibili视频前提声明爬虫应遵守目标网站的robots.txt协议,尊重版权和用户隐私。本代码仅供学习和研究使用,不得用于商业用途。请确保在合法合规的前提下使用本代码。本代码所爬视频为公开可下载的视频目录前提声明引言环境准备代码解析1.导入必......
  • table列表 图片预览
    1<el-table-columnlabel="营业执照"align="center"prop="businessLicense">2<templateslot-scope="scope">3<el-image4style="width:60p......
  • nginx前端图片缓存
    背景高频接口和高频前端图片都部署在后端,历史原因,研发不想改代码做前段后分离,我这边做nginx缓存固定路径下的前端图片。环境确认需要缓存的图片路径123.123.123.123:8888端口下的图片路径是:/web/portal-web/images/该目录下有多张图片和多级目录,不同目录下也有很多图片配置......
  • Taro 鸿蒙技术内幕系列(四):JDImage 自研鸿蒙图片库
    作者:京东零售何骁基于Taro打造的京东鸿蒙APP已跟随鸿蒙Next系统公测,本系列文章将深入解析Taro如何实现使用React开发高性能鸿蒙应用的技术内幕背景2024年初,京东正式启动了鸿蒙APP的开发工作。由于电商APP大量依赖图片来展示商品信息,对图片库的性能和加载体验......
  • responsively-lazy 可实现响应式图片懒加载的js插件
    在线演示  下载responsively-lazy是一款非常实用的可实现响应式图片懒加载的插件。它可以根据容器的大小来智能选择加载适合尺寸的图片,做到图片的响应式效果。并且使用它对于SEO是十分友好的。该图片懒加载插件的特点还有:响应式图片不做任何不必要的请求可以在任何支持s......
  • 简单实用的鼠标滑过图片遮罩层动画jQuery插件
    nsHover是一款简单实用的鼠标滑过图片遮罩层动画JQUERY插件。该插件可以在图片或块级元素上制作鼠标滑过时的遮罩层动画效果,它可以设置遮罩层的前景色和背景色,可以制作圆形图片等,非常实用。在线演示  下载 使用方法使用该鼠标滑过插件需要引入jQuery和ns.hover.min.js文......
  • 图片预处理技术介绍4——降噪
    图片预处理  大家好,我是阿赵。  这一篇将两种基础的降噪算法。  之前介绍过均值模糊和高斯模糊。如果从降噪的角度来说,模糊算法也算是降噪的一类,所以之前介绍的两种模糊可以称呼为均值降噪和高斯降噪。不过模糊算法对原来的图像特征的减弱性太强,我们想在降噪......