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

专业seo网站优化推广排名教程网站seo重庆

专业seo网站优化推广排名教程,网站seo重庆,网站备案名称修改,上海云职企业服务是干什么的当我们爬取图片的URL地址时,我们要确保它们都是有效的绝对URL,这样就可以直接用这些URL来下载图片了。但是很多时候,它们都不是绝对URL地址,因此我们需要它进行URL转换。 if img_url.startswith(//): 这个条件检查URL是否以//开头…

        当我们爬取图片的URL地址时,我们要确保它们都是有效的绝对URL,这样就可以直接用这些URL来下载图片了。但是很多时候,它们都不是绝对URL地址,因此我们需要它进行URL转换。

  1. if img_url.startswith('//'):

    这个条件检查URL是否以//开头。这种形式的URL称为协议相对URL(protocol-relative URL),它意味着URL的协议(如http:https:)应该与当前页面的协议相同。代码通过将http:添加到URL的前面来将其转换为绝对URL。注意,这里假设页面是通过HTTP协议加载的;如果页面是通过HTTPS加载的,应该使用https:。在实际应用中,你可能需要根据页面的实际协议来动态确定这一点。
  2. elif img_url.startswith('/'):

    这个条件检查URL是否以/开头。这种形式的URL是相对于网站根目录的路径。代码通过将页面的基础URL(即不包含页面具体路径的URL)与相对路径拼接起来,从而生成绝对URL。
  3. elif not img_url.startswith('http'):

    这个条件检查URL是否不以http开头。这通常意味着URL是相对于当前页面路径的。代码通过在页面基础URL后面添加/(如果需要的话,即如果基础URL不以/结尾)和相对路径,从而生成绝对URL。
    # 处理相对路径,下面只考虑httpif img_url.startswith('//'):img_url = 'http:' + img_urlelif img_url.startswith('/'):img_url = url + img_urlelif not img_url.startswith('http'):img_url = url + '/' + img_url

下面介绍不同的数据类型在python中的处理方法: 

JSON

  1. 获取 JSON 数据

    • 使用 requests.get(url) 获取 JSON 数据。
    • 使用 response.raise_for_status() 检查请求是否成功。
  2. 解析 JSON 数据

    • 使用 response.json() 将 JSON 数据解析为 Python 字典。
    • 假设 JSON 数据中有一个键(例如 images)包含图片 URL 列表。
  3. 提取图片 URL 列表

    • 从解析后的 JSON 数据中提取图片 URL 列表。
    • 创建保存图片的目录。如果目录不存在,使用 os.makedirs(save_dir) 创建目录。
  4. 下载图片并保存到本地

    • 处理图片 URL 的相对路径问题(例如,将协议相对 URL 转换为绝对 URL)。
    • 使用 requests.get(img_url) 下载图片。
    • 提取图片的文件名,并保存到指定目录。

        如果网页内容是以 JSON 格式返回的,你可以直接使用 requests 库来获取 JSON 数据,然后解析并保存其中的图片。以下是如何处理 JSON 数据并下载其中的图片的示例代码。

import requests
import os
import json# 1. 获取 JSON 数据
url = 'https://api.example.com/data'  # 替换为你的 JSON API URL
response = requests.get(url)
response.raise_for_status()  # 检查请求是否成功# 2. 解析 JSON 数据
data = response.json()# 3. 提取图片 URL 列表
# 假设 JSON 数据中有一个 'images' 键,包含图片 URL 列表
image_urls = data.get('images', [])# 创建保存图片的目录
save_dir = 'downloaded_images'
if not os.path.exists(save_dir):os.makedirs(save_dir)# 4. 下载图片并保存到本地
for img_url in image_urls:try:# 处理相对路径if img_url.startswith('//'):img_url = 'http:' + img_urlelif not img_url.startswith('http'):img_url = url + '/' + img_url# 发送请求获取图片img_response = requests.get(img_url)img_response.raise_for_status()  # 检查请求是否成功# 提取文件名img_filename = os.path.join(save_dir, img_url.split('/')[-1])# 保存图片with open(img_filename, 'wb') as f:f.write(img_response.content)print(f'Saved image: {img_filename}')except Exception as e:print(f'Failed to download image {img_url}: {e}')print('All images downloaded.')

XML(可扩展标记语言)

  • 特点:XML 是一种用于存储和传输数据的标记语言,结构类似于 HTML,但更灵活。
  • 处理方法:使用 Python 的 xml.etree.ElementTree 模块解析 XML 数据。
import xml.etree.ElementTree as ET
import requests
import os# 获取 XML 数据
url = 'https://api.example.com/data.xml'
response = requests.get(url)
response.raise_for_status()# 解析 XML 数据
root = ET.fromstring(response.content)# 提取图片 URL 列表
image_urls = [elem.text for elem in root.findall('.//image')]# 创建保存图片的目录
save_dir = 'downloaded_images'
if not os.path.exists(save_dir):os.makedirs(save_dir)# 下载图片并保存到本地
for img_url in image_urls:try:img_response = requests.get(img_url)img_response.raise_for_status()img_filename = os.path.join(save_dir, img_url.split('/')[-1])with open(img_filename, 'wb') as f:f.write(img_response.content)print(f'Saved image: {img_filename}')except Exception as e:print(f'Failed to download image {img_url}: {e}')

 CSV(逗号分隔值)

  • 特点:CSV 是一种简单的文件格式,用于存储表格数据。
  • 处理方法:使用 Python 的 csv 模块读取 CSV 文件,或者直接使用 pandas 库进行高级处理。
import csv
import requests
import os# 获取 CSV 数据
url = 'https://api.example.com/data.csv'
response = requests.get(url)
response.raise_for_status()# 解析 CSV 数据
csv_data = response.text
csv_reader = csv.reader(csv_data.splitlines())
next(csv_reader)  # 跳过表头image_urls = [row[0] for row in csv_reader]# 创建保存图片的目录
save_dir = 'downloaded_images'
if not os.path.exists(save_dir):os.makedirs(save_dir)# 下载图片并保存到本地
for img_url in image_urls:try:img_response = requests.get(img_url)img_response.raise_for_status()img_filename = os.path.join(save_dir, img_url.split('/')[-1])with open(img_filename, 'wb') as f:f.write(img_response.content)print(f'Saved image: {img_filename}')except Exception as e:print(f'Failed to download image {img_url}: {e}')

 Excel(.xls, .xlsx)

  • 特点:Excel 文件是一种用于存储表格数据的常见文件格式。
  • 处理方法:使用 openpyxl 或 pandas 库读取 Excel 文件。
import requests
import os
import openpyxl# 获取 Excel 数据
url = 'https://api.example.com/data.xlsx'
response = requests.get(url)
response.raise_for_status()# 保存 Excel 文件到本地
temp_filename = 'temp.xlsx'
with open(temp_filename, 'wb') as f:f.write(response.content)# 读取 Excel 数据
workbook = openpyxl.load_workbook(temp_filename)
sheet = workbook.activeimage_urls = [cell.value for cell in sheet['A']]# 删除临时文件
os.remove(temp_filename)# 创建保存图片的目录
save_dir = 'downloaded_images'
if not os.path.exists(save_dir):os.makedirs(save_dir)# 下载图片并保存到本地
for img_url in image_urls:try:img_response = requests.get(img_url)img_response.raise_for_status()img_filename = os.path.join(save_dir, img_url.split('/')[-1])with open(img_filename, 'wb') as f:f.write(img_response.content)print(f'Saved image: {img_filename}')except Exception as e:print(f'Failed to download image {img_url}: {e}')

 HTML

  • 特点:HTML 是网页的标准标记语言,常用于展示网页内容。
  • 处理方法:使用 BeautifulSoup 或 lxml 库解析 HTML 内容。
import requests
from bs4 import BeautifulSoup
import os# 获取 HTML 数据
url = 'https://example.com'
response = requests.get(url)
response.raise_for_status()# 解析 HTML 数据
soup = BeautifulSoup(response.text, 'html.parser')# 提取图片 URL 列表
image_tags = soup.find_all('img')
image_urls = [img['src'] for img in image_tags if 'src' in img.attrs]# 创建保存图片的目录
save_dir = 'downloaded_images'
if not os.path.exists(save_dir):os.makedirs(save_dir)# 下载图片并保存到本地
for img_url in image_urls:try:img_response = requests.get(img_url)img_response.raise_for_status()img_filename = os.path.join(save_dir, img_url.split('/')[-1])with open(img_filename, 'wb') as f:f.write(img_response.content)print(f'Saved image: {img_filename}')except Exception as e:print(f'Failed to download image {img_url}: {e}')

其他数据格式

  • YAML:使用 PyYAML 库解析 YAML 数据。
  • SQLite:使用 sqlite3 库连接和查询 SQLite 数据库。
  • 二进制文件:使用 struct 模块解析二进制数据。

http://www.yayakq.cn/news/630561/

相关文章:

  • 网站备案主体是什么使用python做网站
  • 网站的好处网络营销制度课完整版
  • 企业网站开发哪家专业酒店网站html模板
  • 扫二维码做自己网站河南网站制作工作室
  • 武邑网站建设杭州集团公司网站建设
  • 仿起点小说网站开发模块式网站制作
  • 营销型网站建设空间必须是手机搭建wordpress 不root
  • 安徽省建设干校学校网站电子商务网站的建设心得
  • 南宁seo网站建设内容营销怎么做
  • 怎么才能建设免费网站成品人和精品人的区别在哪里
  • 秦皇岛抚宁区建设局网站施工企业研发资金投入情况说明
  • 网站建设文案怎么写定制网站开发
  • 江门市网站建设 熊掌号趣味阁小程序入口
  • 如何自己做个简单网站网站建设服务器是什么意思
  • 中山市做网站公司建网站和建小程序多少钱
  • 温州 网站建设网页视频下载链接
  • 做酒店的网站网站建设的实验总结
  • 网站架构建设网络稿件投稿平台
  • 建立企业网站收费标准直播网站建设需要什么
  • 邯郸企业网站制作建设网站建设项目策划书模板范文
  • 郑州企业建设网站有什么好处自己建设网站网站赚钱
  • 商丘市建立网站公司装修大全
  • 有哪些文本封面做的好的网站wordpress年会员
  • 网站做一些流量互换清洁设备网站模版
  • 免费网站管理软件网站的推广费用票可以做抵扣吗
  • 上海企业网站设计制作网站建设算加工承揽合同吗
  • 做网站 需要 域名 空间门户网站的类型
  • 制作公司网站有哪些好处找人做的网站第二年多钱
  • 专题网站开发工具云羽网络网站建设
  • 肥西县重点工程建设管理局网站阜阳建设工程质量监督网站