document.querySelector("#pdfPlayerFirefox").contentWindow.PDFViewerApplication.pdfDocument.getData().then((d) => {
const dl = document.createElement('a');
dl.href = URL.createObjectURL(new Blob([d], { type: 'application/octet-stream' }));
dl.download = 'pdf.pdf';
document.body.appendChild(dl);
dl.click();
document.body.removeChild(dl);
});
document.querySelector("#pdfPlayerFirefox").contentWindow.PDFViewerApplication.pdfDocument.getData().then((d) => {
const dl = document.createElement('a');
dl.href = URL.createObjectURL(new Blob([d], { type: 'application/octet-stream' }));
// 使用当前页面的标题作为文件名
const fileName = document.title || 'pdf'; // 如果没有标题,则默认为 'pdf'
dl.download = `${fileName}.pdf`; // 设置下载文件名
document.body.appendChild(dl);
dl.click();
document.body.removeChild(dl);
});
from urllib.parse import urlparse
def filter_image_url(image_url):
"""过滤掉图片 URL 中的查询参数,保留基础 URL,并将 https 替换为 http"""
parsed_url = urlparse(image_url)
# 替换 https 为 http
new_scheme = "http" if parsed_url.scheme == "https" else parsed_url.scheme
# 去掉查询参数,保留基础图片地址
return parsed_url._replace(scheme=new_scheme, query="").geturl()
def generate_img_tags(base_url, start, end):
"""根据基础地址生成图片地址并转换为 标签"""
base_url_filtered = filter_image_url(base_url) # 过滤掉查询参数并替换协议
img_tags = []
for i in range(start, end + 1):
# 生成基础图片地址
img_url = f"{base_url_filtered.rsplit('/', 1)[0]}/{i}.jpg"
# 对第一个图片进行特殊处理,使用百度图片下载接口
if i == start:
img_url = f"https://image.baidu.com/search/down?url={img_url}"
img_tags.append(f'')
return img_tags
# 测试
base_url = "https://r3-ndr.ykt.cbern.com.cn/edu_product/esp/assets/ab6cf4a8-302e-4a3f-8653-62d70922effc.t/zh-CN/1688374863837/transcode/image/1.jpg?v=1688376559264&x-eos-process=image/format,webp" # 需要修改的地址
start = 1 # 图片编号从 1 开始
end = 300 # 到 300
# 生成所有的 标签
img_tags = generate_img_tags(base_url, start, end)
# 输出所有标签到控制台
output = "n".join(img_tags)
print(output)
# 输出确认信息
print("nHTML 图片标签已打印。")
import requests
from urllib.parse import urlparse, urlunparse, urlencode
def filter_image_url(image_url):
"""去掉查询参数,保留基础 URL"""
parsed_url = urlparse(image_url)
return urlunparse((parsed_url.scheme, parsed_url.netloc, parsed_url.path, "", "", ""))
def is_image_valid(url):
"""验证图片是否有效(状态码 200 且 Content-Type 为 image)"""
try:
response = requests.head(url, timeout=5) # 只请求头部信息,提高效率
return response.status_code == 200 and "image" in response.headers.get("Content-Type", "")
except requests.RequestException:
return False
def find_valid_image_range(base_url, start, end, check_start=100):
"""使用二分法查找最后一张有效图片"""
base_url_filtered = filter_image_url(base_url)
# 从 check_start(100)开始检查
if not is_image_valid(f"{base_url_filtered.rsplit('/', 1)[0]}/{check_start}.jpg"):
# 如果 100 不可用,就往前搜索
left, right = start, check_start
while left < right:
mid = (left + right) // 2
if is_image_valid(f"{base_url_filtered.rsplit('/', 1)[0]}/{mid}.jpg"):
left = mid + 1
else:
right = mid
last_valid = left - 1
else:
# 如果 100 可用,就往后搜索
left, right = check_start, end
while left < right:
mid = (left + right) // 2
if is_image_valid(f"{base_url_filtered.rsplit('/', 1)[0]}/{mid}.jpg"):
left = mid + 1
else:
right = mid
last_valid = right - 1
return max(start, last_valid) # 不能小于 start
def generate_img_tags(base_url, start, end):
"""生成 标签,排除无效图片"""
base_url_filtered = filter_image_url(base_url)
# 找到最后一张有效图片
last_valid = find_valid_image_range(base_url, start, end)
print(f"✅ 最后有效图片编号: {last_valid}")
img_tags = []
for i in range(start, last_valid + 1):
img_url = f"{base_url_filtered.rsplit('/', 1)[0]}/{i}.jpg"
# 第一个图片使用百度图片下载接口
if i == start:
img_url = f"https://image.baidu.com/search/down?{urlencode({'url': img_url})}"
img_tags.append(
f'')
return img_tags
# 测试
base_url = "https://r3-ndr.ykt.cbern.com.cn/edu_product/esp/assets/ab6cf4a8-302e-4a3f-8653-62d70922effc.t/zh-CN/1688374863837/transcode/image/1.jpg?v=1688376559264&x-eos-process=image/format,webp"
start, end = 1, 300
# 生成 HTML 代码
img_tags = generate_img_tags(base_url, start, end)
html_output = "n".join(img_tags)
print(html_output)
print("n✅ HTML 图片标签已生成!")
* WordPress 批量删除所有文章的特色图像
*/
global $wpdb;
$attachments = $wpdb->get_results( "
SELECT *
FROM $wpdb->postmeta
WHERE meta_key = '_thumbnail_id'
" );
foreach ( $attachments as $attachment ) {
wp_delete_attachment( $attachment->meta_value, true );
}
$wpdb->query( "
DELETE FROM $wpdb->postmeta
WHERE meta_key = '_thumbnail_id'
" );
评论(0)