手机兼职在哪个网站做装修队伍做网站

diannao/2026/1/23 23:53:52/文章来源:
手机兼职在哪个网站做,装修队伍做网站,建设新闻博客类网站要多大空间,怎样把网站做的好看文章目录 写在前面实验描述实验框架实验需求 实验内容1.安装依赖库2.创建Scrapy项目3.配置系统设置4.配置管道文件5.连接数据库6.分析要爬取的内容7.编写爬虫文件 运行结果写在后面 写在前面 本期内容#xff1a;基于scrapymysql爬取博客信息并保存到数据库中 实验需求 ana… 文章目录 写在前面实验描述实验框架实验需求 实验内容1.安装依赖库2.创建Scrapy项目3.配置系统设置4.配置管道文件5.连接数据库6.分析要爬取的内容7.编写爬虫文件 运行结果写在后面 写在前面 本期内容基于scrapymysql爬取博客信息并保存到数据库中 实验需求 anaconda丨pycharmpython3.11.4scrapymysql 项目下载地址https://download.csdn.net/download/m0_68111267/88740730 实验描述 本次实验实现了使用Scrapy框架爬取博客专栏的目录信息并保存到MySQL数据库中实验主要涉及到Python的爬虫技术以及MySQL的基本操作需要有一定的基础。 实验框架 Scrapy 实验需求 Scrapy Scrapy是一个基于Python的开源网络爬虫框架用于快速、高效地获取网页数据。它具有强大的抓取能力支持多线程和分布式爬虫能够并行爬取多个网页。Scrapy提供了方便的API和丰富的功能可以自定义爬虫规则和处理流程支持数据的持久化存储和导出。它还提供了可视化的调试工具和强大的反爬虫策略可以帮助开发者更轻松地构建和管理网络爬虫。Scrapy是一个成熟、稳定和广泛应用的爬虫框架被广泛用于数据抓取、搜索引擎和大数据分析等领域。MySQL MySQL是一个开源的关系型数据库管理系统由Oracle Corporation开发和维护。它具有高性能、可靠性和稳定性能够在各种不同规模的应用中存储和管理大量的数据。MySQL使用SQL语言进行数据操作和查询支持多用户并发操作和事务处理提供了丰富的功能和灵活的配置选项。它可以在多种操作系统上运行并且与多种编程语言和开发工具兼容。MySQL被广泛应用于Web应用、企业级应用和大数据分析等领域。 实验内容 1.安装依赖库 本次实验需要安装scrapy库如果没有scrapy库的话可以运行下面的命令进行安装哦~ pip install -i https://pypi.tuna.tsinghua.edu.cn/simple scrapy2.创建Scrapy项目 在终端输入以下命令可以创建一个scrapy项目 scrapy startproject myblog项目框架如下此时你们应该没有db.py和sp_blogs.py文件 spidersspiders 文件夹是 Scrapy 框架中存放爬虫代码的目录。在 spiders 文件夹中会包含一个或多个 Python 文件每个 Python 文件代表一个独立的爬虫。每个爬虫文件都需要继承自 Scrapy 的 Spider 类并定义爬虫的名称、起始 URL、解析页面的方法等。在爬虫文件中还可以定义一些其他的属性和方法来实现对网页的抓取和解析。Scrapy 框架通过读取 spiders 文件夹中的爬虫文件来识别和启动爬虫。在运行爬虫时可以指定要运行的爬虫名称Scrapy 将会找到对应的爬虫文件并执行相应的代码。spiders 文件夹是 Scrapy 爬虫的核心部分开发者可以根据需要在该文件夹下创建多个爬虫文件以支持同时抓取和解析多个网站。items.pyitems.py文件是Scrapy框架中用于定义数据模型的文件用于指定爬取的数据结构。它定义了爬虫需要爬取和保存的数据字段类似于数据库表的结构方便数据的提取和存储。在items.py文件中使用Python的类来定义数据模型每个类的属性对应一个需要爬取和保存的字段。middlewares.pymiddlewares.py文件是Scrapy框架中用于处理请求和响应的中间件文件。中间件是Scrapy框架的一个重要组成部分用于对请求进行预处理、对响应进行处理或者是处理异常情况。middlewares.py文件中定义了多个中间件类每个中间件类都有特定的功能例如设置请求头、代理设置、处理重定向等。通过在settings.py中配置中间件的顺序Scrapy框架会按照顺序依次使用不同的中间件对请求和响应进行处理。pipelines.pypipelines.py文件是Scrapy框架中用于处理数据的管道文件。在Scrapy中管道是一个用于处理爬取到的数据的组件可以对数据进行清洗、验证、存储或者是发送到其他系统。pipelines.py文件中定义了多个管道类每个管道类都有特定的功能例如将数据存储到数据库、写入文件、发送邮件等。通过在settings.py中配置管道的优先级Scrapy框架会按照优先级顺序依次使用不同的管道对爬取到的数据进行处理。settings.pysettings.py 文件是 Scrapy 框架中的配置文件用于管理和配置爬虫的各种设置选项。在 settings.py 文件中可以设置爬虫的名称、启用或禁用的中间件、管道、下载器、并发请求数、延迟、日志级别等。settings.py 文件包含了许多可配置的选项可以根据实际需求进行调整。通过修改 settings.py 文件可以改变爬虫的行为并对其进行个性化定制。此外settings.py 文件还提供了一些默认的全局配置选项这些选项可以决定爬虫的运行方式和输出结果。 在终端输入以下命令创建爬虫文件 scrapy genspider sp_blogs https://want595.blog.csdn.net/category_12039968_1.html该命令将使用Scrapy生成一个名为sp_blogs的爬虫并将爬虫的起始URL设置为https://want595.blog.csdn.net/category_12039968_1.html。本次实验需要爬取的就是这个专栏的目录 输入完这个命令后在spiders的目录下就会出现sp_blogs.py这个文件啦~ 3.配置系统设置 打开settings.py文件配置系统设置 4.配置管道文件 pipelines.py文件主要用于编写代码处理爬取的数据例如存放到文件中数据库中等等 # Define your item pipelines here # # Dont forget to add your pipeline to the ITEM_PIPELINES setting # See: https://docs.scrapy.org/en/latest/topics/item-pipeline.html# useful for handling different item types with a single interface import pymysql from twisted.enterprise import adbapiclass MyblogPipeline:def __init__(self, dbpool):self.dbpool dbpoolclassmethoddef from_settings(cls, settings):dbparams dict(hostsettings[MYSQL_HOST], # 读取settings中的配置dbsettings[MYSQL_DBNAME],usersettings[MYSQL_USER],passwdsettings[MYSQL_PASSWD],charsetutf8, # 编码要加上否则可能出现中文乱码问题cursorclasspymysql.cursors.DictCursor,use_unicodeFalse,)dbpool adbapi.ConnectionPool(pymysql, **dbparams) # **表示将字典扩展为关键字参数,相当于hostxxx,dbyyy....return cls(dbpool) # 相当于dbpool付给了这个类self中可以得到# pipeline默认调用def process_item(self, item, spider):query self.dbpool.runInteraction(self.insert, item) # 调用插入的方法query.addErrback(self.error, item, spider) # 调用异常处理方法return item# 写入数据库中def insert(self, db, item):# print item[name]sql insert ignore into blogs(title,url) values(%s,%s)params (item[name], item[url])db.execute(sql, params)# 错误处理方法def error(self, failue, item, spider):print(failue)该代码是一个Twisted框架下的MySQL数据库存储的Pipeline。Twisted是一个事件驱动的网络框架使用异步的方式处理网络请求。 该代码中的MyblogPipeline类继承自object类并且实现了__init__、from_settings、process_item、insert和error方法。 __init__方法初始化了一个数据库连接池dbpool并将其赋值给self.dbpool。 from_settings方法从配置文件中读取数据库的相关配置信息并利用这些信息创建一个数据库连接池dbpool。 process_item方法是Pipeline默认调用的方法用于处理item并存储到数据库中。在该方法中首先调用self.dbpool.runInteraction()方法创建一个操作数据库的事务并调用self.insert方法将item插入到数据库中。然后通过addErrback方法添加了一个异常处理方法self.error。 insert方法接收两个参数一个是数据库连接对象db一个是item。在该方法中定义了一个SQL语句和参数并通过db.execute()方法执行了数据库插入操作。 error方法用于处理插入数据库时的异常情况将异常信息打印出来。 总体而言该代码实现了将爬取的数据存储到MySQL数据库中的功能。 5.连接数据库 新建一个db.py文件输入以下代码连接到本地数据库运行后创建一个表用于保存等会爬取的数据。 import pymysql from scrapy.utils.project import get_project_settings # 导入seetings配置class DBHelper:def __init__(self):self.settings get_project_settings() # 获取settings配置设置需要的信息self.host self.settings[MYSQL_HOST]self.port self.settings[MYSQL_PORT]self.user self.settings[MYSQL_USER]self.passwd self.settings[MYSQL_PASSWD]self.db self.settings[MYSQL_DBNAME]# 连接到具体的数据库settings中设置的MYSQL_DBNAMEdef connectDatabase(self):conn pymysql.connect(hostself.host,portself.port,userself.user,passwdself.passwd,dbself.db,charsetutf8) # 要指定编码否则中文可能乱码return conn# 创建表def createTable(self, sql):conn self.connectDatabase()cur conn.cursor()try:cur.execute(sql)cur.close()conn.close()print(创建表成功)except:print(创建表失败)pass# 插入数据def insert(self, sql, *params): # 注意这里params要加*,因为传递过来的是元组*表示参数个数不定conn self.connectDatabase()cur conn.cursor();cur.execute(sql, params)conn.commit() # 注意要commitcur.close()conn.close()if __name__ __main__:dbHelper DBHelper()sql create table pictures(id int primary key auto_increment,name varchar(50) unique,url varchar(200))dbHelper.createTable(sql)这段代码是一个用于操作MySQL数据库的助手类。它使用了Scrapy框架的get_project_settings函数来获取配置信息然后根据配置信息连接到数据库。 在初始化方法中它获取到了MySQL数据库的主机地址、端口号、用户名、密码和数据库名并保存在实例变量中。 connectDatabase方法用于连接到具体的数据库并返回一个数据库连接对象。 createTable方法用于创建表它接受一个SQL语句作为参数使用数据库连接对象执行SQL语句来创建表。 insert方法用于插入数据它接受一个SQL语句和参数作为参数使用数据库连接对象执行SQL语句来插入数据。 最后在主函数中创建了一个DBHelper对象并调用createTable方法来创建一个名为pictures的表。 6.分析要爬取的内容 本实验要爬取的是博客专栏的目录信息 7.编写爬虫文件 编写spiders目录下的sp_blogs.py文件实现博客信息的爬取 import scrapy from scrapy import Selector, cmdlineclass MyblogItem(scrapy.Item):name scrapy.Field()url scrapy.Field()class SpBlogsSpider(scrapy.Spider):name sp_blogsallowed_domains [want595.blog.csdn.net]……请下载后查看完整代码哦这段代码是一个基于Scrapy框架的爬虫用于爬取一个博客网站的文章标题和链接。 首先定义了一个MyblogItem类它继承自scrapy.Item并定义了两个字段name和url用于保存文章的标题和链接。 然后定义了一个SpBlogsSpider类它继承自scrapy.Spider表示一个具体的爬虫。在SpBlogsSpider类中指定了爬虫的名字为sp_blogs指定了允许爬取的域名为want595.blog.csdn.net并指定了要爬取的起始URL。起始URL使用了一个循环生成器生成了多个URL用于爬取多页的数据。 parse方法是默认的回调方法在爬取网页的响应返回后自动被调用。在parse方法中使用Selector对象对响应进行了解析提取出了文章的标题和链接并将它们保存到MyblogItem对象中然后通过yield返回给引擎。 最后通过调用cmdline.execute函数来执行爬虫。执行时会根据给定的参数调用对应的爬虫。在这里使用scrapy crawl sp_blogs参数来执行sp_blogs爬虫。也可以在终端项目的根目录下运行scrapy crawl sp_blogs命令来执行爬虫。 运行结果 爬取的博客信息如下 写在后面 我是一只有趣的兔子感谢你的喜欢

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/88843.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开发网站找什么公司吗做女装的网站有哪些

其实在C中,运算符也是一种函数,有自己的类型,有自己的参数,有自己的返回值。 下面就是重载的方法: struct vec {int x;int y; }; vec operator(const vec &a,const vec &b) //括号里面的是参数 {vec temp;temp…

网站建设与管理需要什么软件有哪些方面岳池发展建设集团有限公司门户网站

文章目录 1. 安装hMailServer2. 设置hMailServer3. 客户端安装添加账号4. 测试发送邮件5. 安装cpolar6. 创建公网地址7. 测试远程发送邮件8. 固定连接公网地址9. 测试固定远程地址发送邮件 hMailServer 是一个邮件服务器,通过它我们可以搭建自己的邮件服务,通过cpolar内网映射工…

河南省汝州市建设网站服务器网站目录

Harbor概述 1.Harbor定义 私有,自定义用户的形式登陆仓库,拉取或者上传镜像。(内部管理的用户) Harbor 是 VMware 公司开源的企业级 Docker Registry 项目,其目标是帮助用户迅速搭建一个企业级的 Docker Registry 服务。 2.Docker Harbor…

嘉兴网站建设的前景网站推广公司兴田德润在哪儿

学习目标: 每天复习代码随想录上的题目1-2道算法(时间充足可以继续) 今日碎碎念: 1)今天开始是二叉树系列 2)出租屋里不知道干啥,看看书啊刷刷算法,打打游戏,学学技术…

外贸网站建设注意苏州知名网站建设定制

传送门 文章目录题意:思路:题意: 思路: 首先一个括号序列合法的条件可以转化成两个(左括号代价为111,右括号代价为−1-1−1): (1) 左括号个数等于右括号个数。 (2) 括号的前缀和非负。 所以我们直接用线段…

网站建设创业规划书网站收款接口

最近遇到一个问题,虽然应用层使用的系统调用send已经返回成功,而且没有错误日志产生,也没有errno的设置。那是不是代表一定是没有问题?从抓包的结果看,虽然上层应用已经显示发出去,但是实际抓包的时候&…

表情包制作网站与别人相比自己网站建设优势

在使用阿里云OSS进行前端直传时,首先我们需要去阿里云官网注册自己的存储桶,然后申请相关的accessKeyId和accessKeySecret,然后新建一个桶,为这个桶命名以及选择对应的地区。 然后可以根据自己的业务,封装对应的组件&a…

个人网站备案名称例子乐清门户网站建设

上一节讲解了IDEA如何连接MySQL数据库管理系统,接下来我们就可以在IDEA里使用MySQL来管理数据库了。那么如果我们现在还没有创建需要的数据库怎么办?本节就来教大家如何在IDEA连接MySQL后管理数据库(创建/修改/删除数据库、创建/修改/删除表、插入/更新/…

建立网站备案的法律依据一个专做里番的网站

你想在这里做两件事 . 我假设您正在使用Oracle(因为您正在使用Java) .首先,您希望对每个用户的每日交易进行分组 .创建一个名为 tempTable 的临时表 .使用 to_char(currentdate, yyyy/mm/dd) 对它们进行分组 .INSERT INTO tempTableSELECTuserid,resourceid,doc_nam…

学校做网站及费用联通营业厅做网站维护

​随着人们生活水平的提高,对食品安全的要求也越来越高。在这种背景下,机器视觉技术作为一种高效、准确的自动化检测手段,在食品安全检测领域扮演着越来越重要的角色。机器视觉系统通过模拟人眼的视觉功能,借助相机和计算机视觉算…

手机网站解析地址珠海网站开发软件

本小节将以应用市场首页为例,介绍如何使用自适应布局能力和响应式布局能力适配不同尺寸窗口。 页面设计 一个典型的应用市场首页的UX设计如下所示。 观察应用市场首页的页面设计,不同断点下的页面设计有较多相似的地方。 据此,我们可以将页…

免费做企业网站南京市建设工程档案馆网站

备注:记录一次spring-boot redis 配置redis.database后,仍然使用db0默认库的情况。 springboot集成redis及相关问题 1. spring boot集成redisredis集成依赖:redis配置序列化 2. 集成redission redis分布式锁等快捷管理工具集成依赖配置注入…

网站app的意义网站建设同步视频

一.题目描述 在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 算法1.排序,然后遍历,时间复杂度O(nlogn),空…

网站建设报价单-中英文版joomla drupal wordpress

登录功能 手机号验证码都通过后端验证后 返回用户数据 登陆成功 成功后 调用store中的setUser方法 store中的setUser方法 将后端返回的用户信息存储到localStorage中 同时登录成功后服务器会将token自动存入我们的cookie中 有过期时间 在我们请求需要登录的接口时将cookie中的…

h5网站的好处做猎头顾问 经常看哪些网站

转 一:出行大数据,滴滴发布400城数据可视化分析 2018年01月04日 00:00:00 https://blog.csdn.net/zw0Pi8G5C1x/article/details/78976493 二:滴滴背后的大数据应用 前言:这是一篇大数据应用文章,不涉及高深技术&#…

北京酒店团购网站建设wordpress静态化链接

一、DTD介绍 Document Type Definition; DTD是一种XML的约束方式,除了此种约束方式外,还有XSchema,XSchema比DTD的约束能力还要强,因此DTD正在逐渐淘汰; DTD的目的就是约束XML标签的写法;比如在…

网站开发什么语言比较好gpu服务器租用价格

点击上方蓝字关注我们WTM5.0全面支持.net5WTM5.0是WTM框架开源2年以来最大的一次升级,全面支持.net5,大幅重构了底层代码,针对广大用户提出的封装过度,不够灵活,性能不高等问题进行了彻底的修改。这次升级使WTM继续保持…

百度指数 多少流量 网站名通过高权重网站做长尾关键词

问题描述: ArcGIS软件在作图模式下插入指北针,出现指北针乱码,如下图所示: 问题解决 下载并安装字体(配套实验数据包0081.rar中获取)即可解决该问题。 正常的指北针选择器: 专栏介绍&#xff…

wordpress建2个网站资产管理wordpress

2024 年 AI 辅助研发趋势随着人工智能技术的持续发展与突破,2024年AI辅助研发正成为科技界和工业界瞩目的焦点。从医药研发到汽车设计,从软件开发到材料科学,AI正逐渐渗透到研发的各个环节,变革着传统的研发模式。在这一背景下&am…