python项目学习1.2

python 深度学习之tensorflow v2.3(一) 一 学习实例1 1.1环境准备 暂时用的 python 版本是 3.8 anaconda url: https://www.continuum.io/downloads https://docs.continuum.io/anaconda/install/ sckikit-learn url: http://scikit-learn.org/stable/install.html NLTK url: https://www.nltk.org/install.html matplotlib url: htt 阅读详情

9.保存数据

利用管道pipeline来处理(保存)数据

9.1在pipelines文件中定义对数据的操作

1.定义一个管道类

2.重写管道类的process_item方法

  1. process_item方法处理完item之后必须返回给引擎
#*******************************************pipelines.py*******************************************#
# Define your item pipelines here
#
# Don't forget to add your pipeline to the ITEM_PIPELINES setting
# See: https://docs.scrapy.org/en/latest/topics/item-pipeline.html
 

class Myspider1Pipeline(object):
    def process_item(self, item, spider):
        # 此处的item是itcast.py文件内的temp字典的值
        print('itcast:',item)
        #默认使用完管道之后需要将数据返回给引擎
        return item

pipelines文件中的编码参数执行的流程,如下图

在这里插入图片描述

9.2查看管道是否已经启用了

此处的管道为空,说明管道还没有启用
在这里插入图片描述

9.3启用settings.py配置启用管道

修改65~68行的代码

#*******************************************settings.py*******************************************#
# Scrapy settings for myspider1 project
#
# For simplicity, this file contains only settings considered important or
# commonly used. You can find more settings consulting the documentation:
#
#     https://docs.scrapy.org/en/latest/topics/settings.html
#     https://docs.scrapy.org/en/latest/topics/downloader-middleware.html
#     https://docs.scrapy.org/en/latest/topics/spider-middleware.html

BOT_NAME = 'myspider1'

SPIDER_MODULES = ['myspider1.spiders']
NEWSPIDER_MODULE = 'myspider1.spiders'


# Crawl responsibly by identifying yourself (and your website) on the user-agent
#USER_AGENT = 'myspider1 (+http://www.yourdomain.com)'

# Obey robots.txt rules
ROBOTSTXT_OBEY = True

# Configure maximum concurrent requests performed by Scrapy (default: 16)
#CONCURRENT_REQUESTS = 32

# Configure a delay for requests for the same website (default: 0)
# See https://docs.scrapy.org/en/latest/topics/settings.html#download-delay
# See also autothrottle settings and docs
#DOWNLOAD_DELAY = 3
# The download delay setting will honor only one of:
#CONCURRENT_REQUESTS_PER_DOMAIN = 16
#CONCURRENT_REQUESTS_PER_IP = 16

# Disable cookies (enabled by default)
#COOKIES_ENABLED = False

# Disable Telnet Console (enabled by default)
#TELNETCONSOLE_ENABLED = False

# Override the default request headers:
#DEFAULT_REQUEST_HEADERS = {
#   'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
#   'Accept-Language': 'en',
#}

# Enable or disable spider middlewares
# See https://docs.scrapy.org/en/latest/topics/spider-middleware.html
#SPIDER_MIDDLEWARES = {
#    'myspider1.middlewares.Myspider1SpiderMiddleware': 543,
#}

# Enable or disable downloader middlewares
# See https://docs.scrapy.org/en/latest/topics/downloader-middleware.html
#DOWNLOADER_MIDDLEWARES = {
#    'myspider1.middlewares.Myspider1DownloaderMiddleware': 543,
#}

# Enable or disable extensions
# See https://docs.scrapy.org/en/latest/topics/extensions.html
#EXTENSIONS = {
#    'scrapy.extensions.telnet.TelnetConsole': None,
#}

# Configure item pipelines
# See https://docs.scrapy.org/en/latest/topics/item-pipeline.html
ITEM_PIPELINES = {
    #'爬取的项目名称.管道python文件名.管道文件内部的类':取值在100-1000之间
    # 注意:管道的大小,可以由多条,数字越小就先执行,数字越大就往后执行
    'myspider1.pipelines.Myspider1Pipeline': 300,
}

# Enable and configure the AutoThrottle extension (disabled by default)
# See https://docs.scrapy.org/en/latest/topics/autothrottle.html
#AUTOTHROTTLE_ENABLED = True
# The initial download delay
#AUTOTHROTTLE_START_DELAY = 5
# The maximum download delay to be set in case of high latencies
#AUTOTHROTTLE_MAX_DELAY = 60
# The average number of requests Scrapy should be sending in parallel to
# each remote server
#AUTOTHROTTLE_TARGET_CONCURRENCY = 1.0
# Enable showing throttling stats for every response received:
#AUTOTHROTTLE_DEBUG = False

# Enable and configure HTTP caching (disabled by default)
# See https://docs.scrapy.org/en/latest/topics/downloader-middleware.html#httpcache-middleware-settings
#HTTPCACHE_ENABLED = True
#HTTPCACHE_EXPIRATION_SECS = 0
#HTTPCACHE_DIR = 'httpcache'
#HTTPCACHE_IGNORE_HTTP_CODES = []
#HTTPCACHE_STORAGE = 'scrapy.extensions.httpcache.FilesystemCacheStorage'

9.4管道启用成功

在命令行中,再次爬取itcast界面,即可查看管道启用成功
在这里插入图片描述

9.5在pipelines文件内格式化数据

#*******************************************pipelines.py*******************************************#    
# 格式化数据
import json

class Myspider1Pipeline(object):
        def __init__(self):
            self.file = open('itcast.json','w')
            
        def process_item(self,item,spider):
            #将字典数据序列化
            json_data = json.dumps(item) +',\n'   #查看英文编码
            
            # 将数据写入文件
            self.file.write(json_data)
            
            #默认使用完管道之后需要将数据返回给引擎
            return item

        def __del__(self):
            self.file.close()
        

运行终端的含crawl命令行后,在项目中自动生成itcast.json文件
在这里插入图片描述

9.6查看爬取itcast网址的json文件中的英文编码

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KWaZz8Bj-1619953885050)(pyProject2.assets/image-20210502180726309.png)]

9.7查看爬取itcast网址的json文件中的中文编码

#*******************************************修改 pipelines.py*******************************************#
    ……
         # ensure_ascii参数默认为True,这样utf-8格式的非ASCII编码内容会被翻译成ASCII编码输出,要想得到字符的真实表示,需要将这个参数设置为False。
         json_data = json.dumps(item,ensure_ascii=False) +',\n' #查看中文编码
    ……

10.完善爬虫

10.1核心知识点

在这里插入图片描述
在这里插入图片描述

10.2内部获取数据

修改items的模板信息

#******************************************修改items.py**************************************#
 # Define here the models for your scraped items
#
# See documentation in:
# https://docs.scrapy.org/en/latest/topics/items.html

import scrapy


class Myspider1Item(scrapy.Item):
    # define the fields for your item here like:
    name = scrapy.Field()
    title = scrapy.Field()
    desc = scrapy.Field()

if __name__ == '__main__':
    item = Myspider1Item()
    item['name'] = "梁老师"  #item内的参数需要和itcast.py文件中的参数相对应,否则报错!!
    item['title'] = "打飞的达扎的"
    item['desc'] = "梁反对法都"
    print(item)

运行结果:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fG1IAySl-1619953885062)(pyProject2.assets/image-20210502185448258.png)]

若把 item[‘name’] = "梁老师"修改成 item[‘nam’] = “梁老师”,则报错以下的信息
在这里插入图片描述

10.3在itcast.py中导入包

把字典temp修改为item,并且放入到包内

#***************************itcast.py*****************************
import scrapy
from myspider1.items import Myspider1Item
# =============================================================================
# #定义爬虫类
# =============================================================================
class ItcastSpider(scrapy.Spider):
    # 定义爬虫的名字
    name = 'itcast'
    #2.检查域名
    allowed_domains = ['itcast.cn']
    # 1.修改起始的url
    start_urls = ['http://www.itcast.cn/channel/teacher.shtml#javaee']

    #3.在parse方法中实现爬取逻辑
    def parse(self, response): # response所对应的start_urls
# =============================================================================
#         # 获取所有教师节点
# =============================================================================
               node_list = response.xpath('//div[@class="main_bot"]')       
        
# =============================================================================
#         #遍历教师节点列表
# ==========================================================================
  # 遍历每一个结点
        for node in node_list:           
            #字典用于实例化
            item = Myspider1Item()
            
            #xpath方法返回的是选择器对象列表,extract()用于从选择器中提取数据
            item['name'] = node.xpath('./h2/text()').extract_first()  #获取第一个值!!
            item['title'] = node.xpath('./h3/./span/text()')[0].extract()
            item['desc'] = node.xpath('./p/./span/text()').extract_first()

            #xpath结果为只含有一个值的列表,可以使用extract_first(),如果为多个值得则使用extract()
            yield item #yield将获取的数据保存起来,并且还没有结束(可适用于获取不同页面的数据)    

运行结果:在这里插入图片描述

解决方案

解决报错”TypeError: Object of type Myspider1Item is not JSON serializable“方法如下:

1.定位报错的地方

在这里插入图片描述

2.修改pipelines.py文件内的参数

在 此文件的Myspider1Pipeline类中的函数名为process_item中加入以下代码

#将item对象强转成字典
item = dict(item)

完整代码
#*******************************************添加pipelines.py*******************************************#
 # 格式化数据
import json

class Myspider1Pipeline(object):
        def __init__(self):
            self.file = open('itcast.json','w')
            
        def process_item(self,item,spider):
            #将item对象强转成字典!!!,该操作只能在scrapy中使用
            item = dict(item)
            #将字典数据序列化
            # json_data = json.dumps(item) +',\n' #查看英文编码
            # ensure_ascii参数默认为True,这样utf-8格式的非ASCII编码内容会被翻译成ASCII编码输出,要想得到字符的真实表示,需要将这个参数设置为False。
            json_data = json.dumps(item,ensure_ascii=False) +',\n' #查看中文编码
            
            # 将数据写入文件
            self.file.write(json_data)
            
            #默认使用完管道之后需要将数据返回给引擎
            return item

        def __del__(self):
            self.file.close()

开发流程总结

在这里插入图片描述

Blog2 无监督深度关键短语生成-项目环境配置及代码部署 2021SC@SDUSC 代码链接:https://github.com/Jayshen0/ Unsupervised-Deep-Keyphrase-Generatio 数据集:https://github.com/ memray/OpenNMT-kpg-release 阅读详情

相关推荐

学习Python需要多长时间才能掌握?

学习Python的时间取决于多个因素,包括个人学习能力、学习方法和目标。学习一些常用的库和框架,例如NumPy(用于科学计算)、Pandas(用于数据处理)、Django(用于Web开发)等,可以提高你的编程能力和效率。通过编写小型的Python程序,你可以将所学的知识应用到实际问题中,并逐渐提高自己的编程能力。在学习的过程中,尝试参与一些实实际项目或练习,这将帮助你将所学的知识应用到实际情境中,并提升解决问题的能力。总之,学习Python的时间因个人而异,取决于你的学习速度和投入程度。

ByteHackerX的博客 144

在 Python 中使用管道

前言在写 Linux 的 shell 脚本时,有个很好用的管道操作符 “|” , 在 python 的三方库中,也有一个可以让我们在写 Python 代码的时候像写 shell 脚本的一...

czhf0002的博客 4739

Mamba-YOLO实战:环境配置+模型训练+精度调优全流程指南(附Colab代码)

在目标检测领域,一场由状态空间模型引发的技术革新正在悄然改写行业格局。近期国际顶级学术期刊连续发布的YOLOv5_mamba、FER-YOLO等突破性成果,不仅刷新了检测精度记录,更开创了结构化状态空间模型(SSM)与经典检测框架的创新融合范式。当前该领域涌现的十大标杆性研究,已在以下维度取得突破性进展:√ 遮挡目标识别准确率提升38%√ 小样本场景泛化能力增强2.7倍√ 视频流检测延迟降低至17ms√ 多目标交叉干扰抑制效果达SOTA。

2501_90555291的博客 1581

用Python操作Named pipe命名管道,实用做法

用Python操作Unix命名管道的实用做法

善良的兽人 1万+

开关电源拓扑结构选型指南:从Buck到Full-Bridge的实战解析

本文为硬件工程师提供了开关电源拓扑结构的实战选型指南。文章系统解析了从基础的Buck、Boost、Buck-Boost,到隔离型的Flyback、Forward,再到中高功率的半桥、全桥以及高效率的LLC谐振拓扑的适用场景与核心特点。通过对比分析各拓扑的优缺点,并结合输入输出电压、功率等级、成本与效率等关键参数,给出了清晰的选型决策路径,帮助工程师根据具体项目需求选择最合适的电源“骨架”。

weixin_29306261的博客 106

T100服务端接口实战:从注册到日志排查的全链路开发指南

本文提供了一份T100服务端接口开发的全链路实战指南。从程序注册与框架签出开始,详细讲解了接口的数据结构设计、核心业务逻辑编写,到最终的部署上线与调用验证。文章重点分享了如何利用日志文件高效定位和排查接口问题,帮助开发者快速掌握T100接口开发的关键步骤与实用技巧。

weixin_28831399的博客 297

在python中利用pipe实现管道

参考书:张颖,赖勇浩,编写高质量代码:改善python程序的91个建议 所有代码在python3.6(win10)上测试通过。 例子: from pipe import * import operator from functools import reduce # basic example y = range(1,6) | where(lambda x: x % 2) | tail(...

math_computer的博客 3456

C++和OpenGL实现3D游戏编程【连载6】——不规则图形的纹理贴图(附源码)

上一节我们讨论了纹理贴图的相关基础操作,但上一节的纹理贴图操作基本上都是规则图形,包括圆形和球形虽然复杂一点,但是它也是规则的。这一节课我们要讨论一下,怎么在不规则图形上纹理贴图,就比如文章下图的心形纹理贴图,以及纹理的平移、旋转、放大缩小功能。

zhooyu的博客 1308

python中的管道函数_python – 如何在scikit-learn中使用管道调整自定义内核函数的参数...

目前我已经使用def函数成功定义了一个自定义内核函数(预先计算内核矩阵),现在我使用GridSearchCV函数来获得最佳参数.因此,在自定义内核函数中,总共有2个参数将被调整(即下例中的gamm和sea_gamma),而且对于SVR模型,还必须调整cost c参数.但到目前为止,我可以使用GridSearchCV调整成本c参数 – >请参阅第I部分:下面的示例.我搜索了一些类似的解决方案,...

weixin_40001025的博客 396

VLA数据采集以及训练

直到15s计时结束,弹出下面的内容,这个时候不会录制视频了,这里就是需要复位物体到初始位置,尽量保证物体的初始位置放在一样的位置,计时3s,同样根据自己的复位时间来修改(--dataset.reset_time_s=3),这里和前面录制数据的区别就是fps后面多了一个nment,可以作为一个标记,知道什么时候开始去复位而不会拍到自己的手臂。复制网址,在浏览器打开,会出现下面的窗口,依次检查每一轮是否存在问题,例如是否出现录制不完整,是否存在除了机械臂以外的其他移动物体,这些都可能会影响最终训练的效果。

weixin_45303602的博客 496

ABAP Channels 之 WebSocket 通信实践:用 ABAP Push Channel 打造实时应用

摘要:本文介绍了ABAP Push Channel(APC)技术,它通过WebSocket协议实现ABAP系统与外部客户端的实时双向通信。文章对比了传统HTTP轮询与WebSocket的差异,解释了APC的事件模型及其接口演进(从IF_APC_WS_EXTENSION到IF_APC_WSP_EXTENSION)。通过仓库拣货等实际案例,展示了APC在企业级应用中的价值,如实时监控、协作场景等。文中还详细阐述了ABAP引擎中WebSocket的交互模型,说明其资源优化设计原理,并提供了基础代码示例。该技术解决

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 293

数据收集-scrapy爬虫框架(一)

概念、作用、工作流程、基本使用、建模、构造发送请求

root1228544694的博客 990

C#:实现统计图像主颜色的算法(附完整源码)

C#:实现统计图像主颜色的算法(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 519

推荐项目:在NVIDIA Jetson TX2上轻松部署TensorFlow v1.3

推荐项目:在NVIDIA Jetson TX2上轻松部署TensorFlow v1.3 随着深度学习的浪潮,NVIDIA Jetson TX2作为一款高效能的边缘计算平台,受到了广泛的关注。对于那些希望在这一平台上运行复杂AI应用的开发者来说,installTensorFlowTX2项目无疑是他们的福音。本篇文章将带你深入了解这个项目,展示其如何简化在NVIDIA Jetson TX2上安装Ten...

gitblog_00654的博客 978

knowhere | 第一课:项目导论与环境搭建

摘要 本课程是Knowhere项目的第一课,重点介绍项目整体架构和开发环境搭建。Knowhere定位为AI Agent的文档记忆基础设施,通过解析多格式文档并保留结构化信息(如章节层级、表格语义等),为Agent提供可导航的文档知识。项目采用Python monorepo结构,核心包括: apps/api:FastAPI服务,处理HTTP请求和流程调用 apps/worker:Celery服务,执行文档解析等耗时任务 packages/shared-python:共享基础设施层 课程明确了各层职责边界,并推

weixin_43674738的博客 151

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

AI辅助学习python 在实际项目中现学现用1、import 2.export

import os导入 Python 标准库中的 os 模块,提供与操作系统交互的功能(如文件、目录操作)。从 collections 模块导入 namedtuple(用于创建具名元组)和 OrderedDict(有序字典)。

chenhao0568的专栏 180

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

非计算机小白成功转行Python数据分析师,月薪2W后,我的学习经验总结_python数据分析师有什么项目经验(1)

如果不想只当调包侠,也不想在工作中因为不理解数学过程太痛苦的话,多补补数学理论吧,至少我工作中接触到简单的数学概念有:标准差,方差,协方差,协方差矩阵,余弦相似度,导数,对数,偏导,概率论,熵,信息论,矩阵运算,向量的运算等等。只能说列举的这些是基础中的基础,比这更难的我也正在学。,这个包主要是sklearn,里面的算法基本都有对应的包,但希望大家能对高等数学,概率论,线性代数,信息论的基础理论进行学习,这些算法都是基于数学基础,如果数学理解不透,也只能当一个调包侠(公众回复:机器学习)

2401_84281655的博客 482

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Wan2.1-UMT5入门编程:Python零基础学习者的第一个AI视频项目

本文介绍了如何在星图GPU平台上自动化部署wan2.1-umt5镜像,帮助Python零基础学习者快速启动AI视频生成项目。该镜像基于阿里巴巴开源的Wan2.1模型搭建,用户可通过简单的API调用,将文本描述(如“卡通猫咪在花园中玩耍”)自动转化为短视频,轻松体验AI内容创作。

weixin_31597759的博客 92

《R1-AQA 项目安装与配置指南》

《R1-AQA 项目安装与配置指南》 1. 项目基础介绍 R1-AQA 是一个基于音频问答(AQA)的开源项目,它基于 Qwen2-Audio-7B-Instruct 模型,通过强化学习(RL)及群体相对策略优化(GRPO)算法进行优化。该项目在 MMAU 基准测试中,仅使用 38k 的后续训练样本就实现了最先进的性能。 项目主要使用的编程语言是 Python。 2. 项目使用的关键技术和框架 ...

gitblog_00306的博客 373

Python-深度有趣人工智能实战项目合集

Python-深度有趣人工智能实战项目合集 去发现同类优质开源项目:https://gitcode.com/ 本项目集包含了多个使用Python3、TensorFlow1.9和Keras2.2开发的深度学习实战项目。每个项目都是从零开始,逐步深入,让您在实践中掌握深度学习的相关知识。 项目特点 实战导向:每一个项目都紧贴实际应用,让您学会如何将理论知识应用到实际问题中。 逐步教学:项目教程由浅入...

gitblog_06771的博客 973

2周快速实现Python从入门到精通学习计划

这篇Python两周高效学习计划提供了系统化的学习路径,帮助开发者快速掌握Python核心语法和实战能力。第一周聚焦基础语法、面向对象、标准库和工程规范,通过每日实践任务巩固知识;第二周根据兴趣选择Web开发、数据分析或自动化方向深入实战,完成项目开发、测试到打包的全流程。计划强调模块化编程、测试驱动和工程化思维,配有精选资源和实践建议,学习者可在两周内构建完整的Python技能栈,产出可展示的项目成果。

清幽竹客 1474

Python学习与资料整理

Python学习路线指南:1-2周掌握基础语法(变量、循环、函数等),推荐Exercism、Codecademy等交互平台练习。2-3周进阶OOP和模块使用,同时持续实战(爬虫/自动化等)。学习技巧包括每日编程、使用调试工具、阅读GitHub代码。资源涵盖LeetCode算法、Kaggle数据分析及趣味项目网站,配合官方文档和社区支持(StackOverflow/中文论坛),强调动手实践优先。

Q_Avril的博客 1045

自学python需要多长时间-怎么自学python,大概要多久?

一桌菜,十几盘,有荤有素,有凉菜有热菜,该怎么吃呢?你可以找一盘看起来好吃的,也可以找一盘离自己近的。但是,得动筷子。不管怎么吃,最重要的就是动筷子,学技术也是一样。Python可以说是最易学的语言之一,且投入产出比非常之高。下面就Python的快速学习路线与花费时间精力做简要概述。学习路线基础知识(1-2周)1.刚上手的时候肯定是先过一遍Python最基本的知识,比如说:变量、数据结构、语法等,...

weixin_37988176的博客 229

使用bash文件运行的python深度学习项目如何调试

因为我是第一次调试这种用bash文件运行的项目,故记录以备以后查看。我要运行的bash文件为:在终端运行项目的话,命令是:bash exp_meld.sh。

zhilanguifang的博客 1236

分享一个 Python + Django 实现的电商小项目

分享一个 Python + Django 实现的电商小项目

Python单行客的博客 1229

python小白学习路径

Matplotlib 数据可视化 多种图表绘制/样式自定义。Pandas 数据分析 数据清洗/合并/分组统计。NumPy 数值计算 数组操作/广播机制。PyTorch 优点 动态计算图/易调试。检查Stack Overflow解答。复制错误信息到Google搜索。实战案例:鸢尾花数据分析。

liqiang12689的博客 468
上一篇: python项目学习1.1
下一篇: python爬取MP3
lanykey
博客等级 码龄7年 4粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值