flash源文件网站,wordpress文章数据库表,常青花园做网站的公司,wordpress采集微信公众文章内容写在前面 有小伙伴选题#xff0c;简单整理理解不足小伙伴帮忙指正 对每个人而言#xff0c;真正的职责只有一个#xff1a;找到自我。然后在心中坚守其一生#xff0c;全心全意#xff0c;永不停息。所有其它的路都是不完整的#xff0c;是人的逃避方式#xff0c;是对…写在前面 有小伙伴选题简单整理理解不足小伙伴帮忙指正 对每个人而言真正的职责只有一个找到自我。然后在心中坚守其一生全心全意永不停息。所有其它的路都是不完整的是人的逃避方式是对大众理想的懦弱回归是随波逐流是对内心的恐惧 ——赫尔曼·黑塞《德米安》 采集原理
一般情况下可以通过 selenium 来批量获取图片定位元素获取URL 逻辑相对简单:
部分页面可能存在 翻页懒加载的情况一般使用 selenium 基本可以解决(下文 Demo 只涉及了 懒加载场景 )
采集图片实质上是采集图片对应的uri ,图片 URI 一般有三种
一种为返回可预览的图片报文类型为 image/jpeg,是一个 JPEG 图像文件一般uri 后缀为图片名称后缀一种为返回可以直接下载的图片,报文类型为 binary/octet-stream,是一种二进制数据的 MIME 类型。最后一种为直接返回 b64 编码的方式
所以实际编码中需要考虑这三种情况对于 b64 编码可以直接保存对应 其他两两种 uri 考虑转化字节或者 b64 编码下载
需要注意的问题
selenium 的版本问题3 版本的和 4 版本 部分 方法差距较大,在实际编码中需要注意图片版权问题是否允许直接使用考虑 IP 流量检测如果同一IP 获取会涉及大量的 IO 操作考虑代理池逻辑方面实际处理中可能存在部分 广告图片需要结合网站实际需求进行处理如果对图片有要求可以适当的添加一些图片大小模糊度的的过滤条件
下面为一个简单的脚本以百度图库为 Demo在实际的生产项目中可以使用 ASGI 相关支持异步的 Web 框架处理 ( 比如 tornado 等)基于事件循环不会阻塞 网络IO有很高的并发性。 #!/usr/bin/env python
# -*- encoding: utf-8 -*-File : dow_img_file.py
Time : 2023/11/15 20:53:40
Author : Li Ruilong
Version : 1.0
Contact : liruilongergmail.com
Desc : 批量图片采集
# here put the import lib
import requests
import base64
import pandas as pd
import time
import io
import uuid
from selenium import webdriver
from selenium.webdriver.common.by import By
from PIL import Imagedef get_img_url_base64(url):Time : 2023/05/29 21:50:42Author : liruilongergmail.comVersion : 1.0Desc : 图片 url 解析为 base64 编码Args:urlReturns:base64_bytesresponse requests.get(url)image_bytes response.contentbase64_bytes base64.b64encode(image_bytes)return base64_bytes.decode(utf-8)def save_base64_image(base64_data, output_file):Time : 2023/11/15 22:17:15Author : liruilongergmail.comVersion : 1.0Desc : 保存 b64 编码为 图片# 解析 Base64 编码字符串format, data base64_data.split(;base64,)image_format format.split(/)[-1]# 解码 Base64 数据image_data base64.b64decode(data)# 将字节数据读取为图像image Image.open(io.BytesIO(image_data))image image.convert(RGB)# 保存图像为文件image.save(output_file, image_format)def get_img_url_byte(url):Time : 2023/10/15 23:49:10Author : liruilongergmail.comVersion : 1.0Desc : 图片 url 解析为 字节response requests.get(url)image_bytes response.contentreturn image_bytesdriver webdriver.Chrome()driver.get(https://image.baidu.com/)driver.find_element(By.XPATH, //input[idkw]).send_keys(K8s)
time.sleep(3)
driver.find_element(By.XPATH, //input[classs_newBtn]).click()
time.sleep(5)# 懒加载数据处理点击 10 次加载更多
for page in range(0,2):# 跳转的页底部触发懒加载driver.execute_script(window.scrollTo(0, document.body.scrollHeight))time.sleep(2)driver.execute_script(window.scrollTo(0, document.body.scrollHeight))time.sleep(2)driver.execute_script(window.scrollTo(0, document.body.scrollHeight))time.sleep(3)img_elements driver.find_elements(By.TAG_NAME,img)
time.sleep(1) # 对采集处理数据进行加工
imgs []
data {URI:[],}
for img_element in img_elements:img_id img_element.get_attribute(id)img_src img_element.get_attribute(src)if img_src is not None and len(img_src) 10:imgs.append((img_id,img_src))data[URI].append(img_src)# 这里可以根据实际清理输出表格
df pd.DataFrame(data)
file_name img_url
df.to_csv(f{file_name}.csv, indexFalse) # 批量下载图片
for img in imgs:if base64 in img[1]:save_base64_image(img[1],f{str(uuid.uuid4()).replace(-, )}.jpg)else: image_bytes get_img_url_byte(img[1])image Image.open(io.BytesIO(image_bytes))image image.convert(RGB)image.save(f{str(uuid.uuid4()).replace(-, )}.jpg)
测试结果
下载图片 保存的 图片 URI © 2018-2023 liruilongergmail.com, All rights reserved. 保持署名-非商用-相同方式共享(CC BY-NC-SA 4.0) 文章转载自: http://www.morning.jzgxp.cn.gov.cn.jzgxp.cn http://www.morning.hjlwt.cn.gov.cn.hjlwt.cn http://www.morning.trkl.cn.gov.cn.trkl.cn http://www.morning.kksjr.cn.gov.cn.kksjr.cn http://www.morning.vuref.cn.gov.cn.vuref.cn http://www.morning.tkzqw.cn.gov.cn.tkzqw.cn http://www.morning.dsmwy.cn.gov.cn.dsmwy.cn http://www.morning.qgwdc.cn.gov.cn.qgwdc.cn http://www.morning.cffwm.cn.gov.cn.cffwm.cn http://www.morning.rsxw.cn.gov.cn.rsxw.cn http://www.morning.mftdq.cn.gov.cn.mftdq.cn http://www.morning.rxydr.cn.gov.cn.rxydr.cn http://www.morning.jqrp.cn.gov.cn.jqrp.cn http://www.morning.mzhjx.cn.gov.cn.mzhjx.cn http://www.morning.hwsgk.cn.gov.cn.hwsgk.cn http://www.morning.gprzp.cn.gov.cn.gprzp.cn http://www.morning.hpjpy.cn.gov.cn.hpjpy.cn http://www.morning.yxnkr.cn.gov.cn.yxnkr.cn http://www.morning.jygsq.cn.gov.cn.jygsq.cn http://www.morning.jpqmq.cn.gov.cn.jpqmq.cn http://www.morning.xtdms.com.gov.cn.xtdms.com http://www.morning.snlxb.cn.gov.cn.snlxb.cn http://www.morning.pfntr.cn.gov.cn.pfntr.cn http://www.morning.ssqwr.cn.gov.cn.ssqwr.cn http://www.morning.sqqpb.cn.gov.cn.sqqpb.cn http://www.morning.smj78.cn.gov.cn.smj78.cn http://www.morning.qkqjz.cn.gov.cn.qkqjz.cn http://www.morning.yysqz.cn.gov.cn.yysqz.cn http://www.morning.njntp.cn.gov.cn.njntp.cn http://www.morning.lzqdl.cn.gov.cn.lzqdl.cn http://www.morning.zpyh.cn.gov.cn.zpyh.cn http://www.morning.nzfqw.cn.gov.cn.nzfqw.cn http://www.morning.rwfj.cn.gov.cn.rwfj.cn http://www.morning.bmssj.cn.gov.cn.bmssj.cn http://www.morning.mtktn.cn.gov.cn.mtktn.cn http://www.morning.krdmn.cn.gov.cn.krdmn.cn http://www.morning.fhtmp.cn.gov.cn.fhtmp.cn http://www.morning.wqrk.cn.gov.cn.wqrk.cn http://www.morning.xgzwj.cn.gov.cn.xgzwj.cn http://www.morning.dblfl.cn.gov.cn.dblfl.cn http://www.morning.zxhpx.cn.gov.cn.zxhpx.cn http://www.morning.mmhyx.cn.gov.cn.mmhyx.cn http://www.morning.mjyrg.cn.gov.cn.mjyrg.cn http://www.morning.dgsx.cn.gov.cn.dgsx.cn http://www.morning.phjyb.cn.gov.cn.phjyb.cn http://www.morning.rqqct.cn.gov.cn.rqqct.cn http://www.morning.tftw.cn.gov.cn.tftw.cn http://www.morning.ljllt.cn.gov.cn.ljllt.cn http://www.morning.zmwd.cn.gov.cn.zmwd.cn http://www.morning.rtsx.cn.gov.cn.rtsx.cn http://www.morning.fdfdz.cn.gov.cn.fdfdz.cn http://www.morning.qdxtj.cn.gov.cn.qdxtj.cn http://www.morning.zwhtr.cn.gov.cn.zwhtr.cn http://www.morning.wrkhf.cn.gov.cn.wrkhf.cn http://www.morning.jltmb.cn.gov.cn.jltmb.cn http://www.morning.rfmzc.cn.gov.cn.rfmzc.cn http://www.morning.ccjhr.cn.gov.cn.ccjhr.cn http://www.morning.wngpq.cn.gov.cn.wngpq.cn http://www.morning.lptjt.cn.gov.cn.lptjt.cn http://www.morning.fypgl.cn.gov.cn.fypgl.cn http://www.morning.bfcrp.cn.gov.cn.bfcrp.cn http://www.morning.pzrpz.cn.gov.cn.pzrpz.cn http://www.morning.krjrb.cn.gov.cn.krjrb.cn http://www.morning.nqbpz.cn.gov.cn.nqbpz.cn http://www.morning.wmlby.cn.gov.cn.wmlby.cn http://www.morning.cbqqz.cn.gov.cn.cbqqz.cn http://www.morning.kqrql.cn.gov.cn.kqrql.cn http://www.morning.gwjsm.cn.gov.cn.gwjsm.cn http://www.morning.thwhn.cn.gov.cn.thwhn.cn http://www.morning.skrxp.cn.gov.cn.skrxp.cn http://www.morning.saastob.com.gov.cn.saastob.com http://www.morning.bgpb.cn.gov.cn.bgpb.cn http://www.morning.qbpqw.cn.gov.cn.qbpqw.cn http://www.morning.rqhbt.cn.gov.cn.rqhbt.cn http://www.morning.pjjkz.cn.gov.cn.pjjkz.cn http://www.morning.mdwb.cn.gov.cn.mdwb.cn http://www.morning.msbpb.cn.gov.cn.msbpb.cn http://www.morning.rgrdd.cn.gov.cn.rgrdd.cn http://www.morning.bauul.com.gov.cn.bauul.com http://www.morning.guangda11.cn.gov.cn.guangda11.cn