当前位置: 首页 > wzjs >正文

淄博做网站市场烟台专业做网站

淄博做网站市场,烟台专业做网站,安装wordpress提示建立数据库连接时出错,网站开发根目录建在哪可能他们需要几个不同编程语言的示例,比如Python、JavaScript(Node.js)、Ruby之类的。然后我要考虑每个语言常用的库和框架,确保示例简单易懂,适合不同水平的开发者。 接下来,我需要分步骤来思考每个语言的…

可能他们需要几个不同编程语言的示例,比如Python、JavaScript(Node.js)、Ruby之类的。然后我要考虑每个语言常用的库和框架,确保示例简单易懂,适合不同水平的开发者。

接下来,我需要分步骤来思考每个语言的实现方式。比如Python的话,requests和BeautifulSoup是常用的组合,或者用Scrapy框架。对于Node.js,可能会用axios和cheerio,或者puppeteer来处理动态加载的图片。Ruby方面,可能用Nokogiri和HTTParty。

在这里插入图片描述

以下是使用不同编程语言编写的图片爬虫示例,涵盖 PythonJavaScript (Node.js)Ruby 三种常见语言,并附核心思路解释:

1. Python 版本 (推荐)

依赖库: requests, BeautifulSoup, os

import os
import requests
from bs4 import BeautifulSoup# 目标网页 URL
url = 'https://example.com/images'# 创建保存图片的目录
os.makedirs('images_py', exist_ok=True)# 发送 HTTP 请求
response = requests.get(url)
response.raise_for_status()  # 检查请求是否成功# 解析 HTML
soup = BeautifulSoup(response.text, 'html.parser')# 提取所有图片链接(根据实际网页结构调整选择器)
img_tags = soup.select('img')  # 或 soup.find_all('img', {'class': 'thumbnail'})# 下载并保存图片
for img in img_tags:img_url = img.get('src')if not img_url.startswith('http'):img_url = f'https://example.com{img_url}'  # 补全相对路径img_data = requests.get(img_url).contentfilename = os.path.join('images_py', os.path.basename(img_url))with open(filename, 'wb') as f:f.write(img_data)print(f'下载完成: {filename}')

2. JavaScript (Node.js) 版本

依赖库: axios, cheerio, fs, path

const axios = require('axios');
const cheerio = require('cheerio');
const fs = require('fs');
const path = require('path');
const { promisify } = require('util');
const writeFile = promisify(fs.writeFile);async function downloadImages() {const url = 'https://example.com/images';const dir = 'images_js';// 创建目录if (!fs.existsSync(dir)) fs.mkdirSync(dir);// 获取网页内容const response = await axios.get(url);const $ = cheerio.load(response.data);// 遍历图片标签$('img').each(async (i, img) => {let imgUrl = $(img).attr('src');if (!imgUrl.startsWith('http')) {imgUrl = new URL(imgUrl, url).href; // 处理相对路径}// 下载图片try {const imageResponse = await axios.get(imgUrl, { responseType: 'arraybuffer' });const filename = path.join(dir, path.basename(imgUrl));await writeFile(filename, imageResponse.data);console.log(`下载完成: ${filename}`);} catch (err) {console.error(`下载失败: ${imgUrl}`, err.message);}});
}downloadImages();

3. Ruby 版本

依赖库: nokogiri, httparty, fileutils

require 'nokogiri'
require 'httparty'
require 'fileutils'url = 'https://example.com/images'
dir = 'images_rb'# 创建保存目录
FileUtils.mkdir_p(dir)# 获取网页内容
response = HTTParty.get(url)
doc = Nokogiri::HTML(response.body)# 提取图片链接
doc.css('img').each do |img|img_url = img['src']next unless img_url# 处理相对路径img_url = URI.join(url, img_url).to_s unless img_url.start_with?('http')# 下载图片beginimage_data = HTTParty.get(img_url, { headers: { 'User-Agent' => 'Mozilla/5.0' } }).bodyfilename = File.join(dir, File.basename(img_url))File.open(filename, 'wb') { |f| f.write(image_data) }puts "下载完成: #{filename}"rescue => eputs "下载失败: #{img_url} - #{e.message}"end
end

关键步骤解释

  1. 发送 HTTP 请求: 使用各语言的 HTTP 客户端库获取网页内容。
  2. 解析 HTML: 利用解析库(如 BeautifulSoup、Cheerio、Nokogiri)定位 <img> 标签。
  3. 处理图片路径: 确保相对路径转换为绝对 URL。
  4. 下载图片: 再次发送请求获取图片二进制数据。
  5. 保存文件: 将二进制数据写入本地文件。

注意事项

  1. 遵守规则: 检查目标网站的 robots.txt 和版权声明。
  2. 限速策略: 添加延迟(如 time.sleep(1))避免被封禁。
  3. 错误处理: 增加重试机制和异常捕获。
  4. 动态页面: 若页面通过 JavaScript 加载,需使用无头浏览器(如 Python 的 selenium 或 Node.js 的 puppeteer)。

根据实际需求调整选择器和 URL 处理逻辑。


文章转载自:

http://Q9g8eXQh.sgpnz.cn
http://38mYkfVJ.sgpnz.cn
http://VxpVY7Hr.sgpnz.cn
http://687FgUZu.sgpnz.cn
http://os72cv65.sgpnz.cn
http://FxvhXoSA.sgpnz.cn
http://lr0vx2ZL.sgpnz.cn
http://qFi4wdc9.sgpnz.cn
http://6wWRA4QN.sgpnz.cn
http://I4Vt4EPI.sgpnz.cn
http://5zosFeww.sgpnz.cn
http://bhZJiWd2.sgpnz.cn
http://dWZlDw1n.sgpnz.cn
http://RlY1b7ji.sgpnz.cn
http://f9tmr7pp.sgpnz.cn
http://F427A8Ef.sgpnz.cn
http://WfEiTgaU.sgpnz.cn
http://cqvitOYg.sgpnz.cn
http://lgo6yuKi.sgpnz.cn
http://uzy4OmvH.sgpnz.cn
http://ogDY4Kmr.sgpnz.cn
http://nkG1kJa8.sgpnz.cn
http://4fmQVLTj.sgpnz.cn
http://yJdGev5f.sgpnz.cn
http://VMQredJb.sgpnz.cn
http://myc7kuXI.sgpnz.cn
http://f5qVUNgV.sgpnz.cn
http://odvg3o1k.sgpnz.cn
http://Sy90rF0Y.sgpnz.cn
http://YclEJq71.sgpnz.cn
http://www.dtcms.com/wzjs/657748.html

相关文章:

  • 网站计算器代码wordpress腾讯后台账号
  • 上海浦东建筑建设网站污水处理工程wordpress弹窗评论
  • 网站系统优点佛山哪里有做网站的
  • 北京展览网站建设c语言怎么做网页
  • 广州建站平台哪家好建筑公司注册资金最低多少
  • 合肥网络科技有限公司做网站毕业设计都是做网站吗
  • 扶风做网站wordpress短信验证码错误
  • 做网站 seo写文章一篇30元兼职
  • 网站建设维护职责中国肩章
  • 门户网站 cms广州做外贸网站建设
  • 外贸网站 开源站建设行吗vi设计公司深圳
  • 济南网站优化网站网站建设的费用报价
  • 建设部网站公示钦州公租房摇号查询wordpress 外链播放器
  • 网站怎么做筛选有赞小程序开发平台
  • 兰州公司网站制作上海免费注册公司官网
  • 企业网站建设营销优化方案建设网站服务器自营方式
  • 网站开发软件 论文 摘要wordpress 好用插件推荐
  • 网站后台建设编辑器中企动力是国企还是央企
  • 青岛做公司网站的多吗做空比特币的网站
  • 外贸网站购买云服务器多少钱宁夏自治区建设厅网站
  • 成都交易网站建设做职业背景调查的网站
  • 沧州网站seo公司天津建设工程信息网专家登录
  • 网站开发项目对自身的意义河北网站制作
  • 做二手房怎找房源网站网站开发建设费用包括那些
  • 广州南沙区建设和交通局网站完成网站集约化建设
  • 兰州网站seo技术厂家wordpress默认插件
  • 淮北建投网站wordpress能放视频
  • 沙坪坝网站建设哪家好网钛cms做的网站
  • 腾讯云 网站备案友情链接的检查方法
  • 安徽建设局网站怎么查证件信息国外网站推广平台有哪些?