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

小卖部做网站什么是广告营销

小卖部做网站,什么是广告营销,网站空间1g多少钱一年,如何上传网站模板文章目录 基于管道持久化存储操作scrapy的使用步骤1.先转到想创建工程的目录下#xff1a;cd ...2.创建一个工程3.创建之后要转到工程目录下4.在spiders子目录中创建一个爬虫文件5.执行工程setting文件中的参数 基于管道持久化存储的步骤#xff1a;持久化存储1#xff1a;保… 文章目录 基于管道持久化存储操作scrapy的使用步骤1.先转到想创建工程的目录下cd ...2.创建一个工程3.创建之后要转到工程目录下4.在spiders子目录中创建一个爬虫文件5.执行工程setting文件中的参数 基于管道持久化存储的步骤持久化存储1保存到本地txt文档。1. 数据解析2. 在item类中定义相关的属性3. 将解析的数据封装存储到item类型的对象4. 将item类型的对象提交给管道进行持久化存储的操作5. 在管道类的process_item中要将其接受到的item对象中存储的数据进行持久化存储操作6. 在配置文件中开启管道运行结果 持久化存储2保存到数据库中。前言安装mysql安装navicat使用终端操作数据库如何使用navicat新建数据库新建表 1234步与持久化存储1完全相同。5. 在管道类的process_item中要将其接受到的item对象中存储的数据进行持久化存储操作6. 在配置文件中开启管道运行结果后记 基于管道持久化存储操作 这个也是在基于scrapy框架的基础上实现的所以scrapy的基本使用命令也是需要遵从的 scrapy的使用步骤 1.先转到想创建工程的目录下cd … 2.创建一个工程 scrapy startproject 工程名 XXProXXproject3.创建之后要转到工程目录下 cd 工程名4.在spiders子目录中创建一个爬虫文件 这里不需要切换目录在项目目录下即可。 www.xxx.com是要爬取的网站。 scrapy genspider 爬虫文件名 www.xxx.com5.执行工程 在pycharm中直接执行是不管用的无效。应该再在终端中执行 scrapy crawl 爬虫文件名 # 执行的是爬虫文件setting文件中的参数 项目下有一个settings文件里面的文件介绍如下 # Obey robots.txt rules ROBOTSTXT_OBEY False#显示指定类型的日志信息 而不显示其他乱七八糟的 LOG_LEVEL ERROR# 设置用户代理 浏览器类型 USER_AGENT Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36# 取消注释改行意味着开启管道存储。 # 300表示优先级数值越小优先级越高 ITEM_PIPELINES {weiboPro.pipelines.WeiboproPipeline: 300, } 基于管道持久化存储的步骤 1. 数据解析 2. 在item类中定义相关的属性 3. 将解析的数据封装存储到item类型的对象 4. 将item类型的对象提交给管道进行持久化存储的操作 5. 在管道类的process_item中要将其接受到的item对象中存储的数据进行持久化存储操作 6. 在配置文件中开启管道 持久化存储1保存到本地txt文档。 这个并不是很难。主要是理清他的思路是什么。 在工程目录下的爬虫文件(这里是weibo.py)写好保证能够爬取到信息之后主要是将管道文件写好(pipelines.py)。 按照上面的6步走 1. 数据解析 即爬取数据的过程 # weibo.py爬虫文件 # 不使用数据库只保存到本地import scrapy from weiboPro.items import WeiboproItem # 导包失败右键项目目录 将目标标记为 源代码根目录# 爬取微博失败了返回为空。改为爬取B站了。 # 爬取B站的视频的名称和作者 class WeiboSpider(scrapy.Spider):name weibo# allowed_domains [weibo.com]start_urls [https://www.bilibili.com/]def parse(self, response):author []title []div_list response.xpath(//*[idi_cecream]/div[2]/main/div[2]/div/div[1]/div)print(数据长度为, len(div_list))for div in div_list:# xpath返回的是列表但是列表元素一定是Selector类型的对象# extract可以将Selector对象中data参数存储的字符串提取出来author div.xpath(.//div[classbili-video-card__info--right]//a/span[classbili-video-card__info--author]/text()).extract() # xpath要从上一层的xpath开始找必须在最前面加个. !!# 对列表调用extract后将列表的每一个Selector对象中的data对应的字符串提取了出来titlediv.xpath(.//div[classbili-video-card__info--right]/h3/a/text()).extract()# author, title解析到的为list将其转为str# 将列表转为字符串 .join方法author .join(author)title .join(title)print(当前抽取的author, author)print(当前抽取的title, title)print(len(author), len(title))# 34两步都在循环内所以是每执行一次循环将item对象提交给管道并存储到本地# 3.将解析的数据封装存储到item类型的对象item WeiboproItem()item[author] authoritem[title] title# 4. 将item类型的对象提交给管道进行持久化存储的操作yield item2. 在item类中定义相关的属性 找到项目目录下的items.py文件在里面定义相关的属性 class WeiboproItem(scrapy.Item):# define the fields for your item here like:# name scrapy.Field()# 在item类中定义相关的属性author scrapy.Field()title scrapy.Field() 3. 将解析的数据封装存储到item类型的对象 4. 将item类型的对象提交给管道进行持久化存储的操作 34两步在1.中已经体现具体代码为 # 3.将解析的数据封装存储到item类型的对象item WeiboproItem()item[author] authoritem[title] title# 4. 将item类型的对象提交给管道进行持久化存储的操作yield item5. 在管道类的process_item中要将其接受到的item对象中存储的数据进行持久化存储操作 在这里重写了父类的两个方法open_spider()和close_spider()方法。 open_spider()方法在开始爬虫时被调用一次close_spider()方法在爬虫结束时被调用一次。这样实现了yield多次时只打开关闭一次文件。 process_item()是将得到的item对象中的数据保存到本地。 # pipelines.py 管道文件 class WeiboproPipeline:fp Nonedef open_spider(self, spider):# 重写父类的方法只在开始爬虫时被调用一次print(开始爬虫)self.fp open(./B站.txt, w, encodingutf-8)def process_item(self, item, spider):author item[author]title item[title]print(当前写入的是 author : title \n)self.fp.write(author : title \n)return itemdef close_spider(self, spider):# 重写父类的方法在爬虫结束时被调用一次print(结束爬虫)self.fp.close()6. 在配置文件中开启管道 打开项目weiboPro路径下的settings.py文件将ITEM_PIPELINES字典取消注释即可开启管道。 ITEM_PIPELINES {weiboPro.pipelines.WeiboproPipeline: 300, }运行结果 运行结束之后会在本地生成B站.txt文件其中包含爬取的author和title 持久化存储2保存到数据库中。 前言 安装mysql 安装navicat 这里需要安装mysql我还另外安装了navicat。安装好mysql之后要新建连接按照步骤操作即可。 使用终端操作数据库 这里需要mysql库。这个库是用来对数据库进行远程连接的所以必须要有打开的数据库打开的表才可以。 如何使用navicat新建数据库新建表 建立好之后再按照上面的6步按部就班来就可以。 1234步与持久化存储1完全相同。 5. 在管道类的process_item中要将其接受到的item对象中存储的数据进行持久化存储操作 这里的管道文件中的每一个管道类如持久化存储1的WeiboproPipeline对应将一组数据存储到一个平台或者载体中。上面的是保存到本地所以我们还需要将再写一个类来将数据持久化存储到数据库中。 我也有好多东西不理解为什么要这么写 # 管道文件中一个管道类对应将一组数据存储到一个平台或者载体中 class mysqlPileLine:# 每写一个管道类要将这个类写到settings.py的ITEM_PIPELINES中。connect Nonecursor Nonedef open_spider(self, spider):# 重写父类的方法在爬虫开始时调用一次# 创建连接pymysql.Connectself.connect pymysql.Connect(host127.0.0.1, port3306, userroot, passwordliu1457154996, dbbzhan, charsetutf8) # db表示数据库的名称我上面创建的数据库名称叫bzhan即上图中的绿色圆柱def process_item(self, item, spider):# 创建游标self.cursor self.connect.cursor()try:self.cursor.execute(INSERT INTO bzhan (author, title) VALUES (%s, %s) % (item[author], item[title])) # 这里的bzhan是bzhan数据库下的表的名称self.connect.commit()print(成功写入数据库, item[author], item[title])except Exception as e:print(e)self.connect.rollback()return itemdef close_item(self, spider):self.cursor.close() # 关闭游标self.connect.close() # 关闭连接6. 在配置文件中开启管道 在上面的基础上开启mysqlPileLine管道。 ITEM_PIPELINES {weiboPro.pipelines.WeiboproPipeline: 300,weiboPro.pipelines.mysqlPileLine: 301, }运行结果 在终端中输入scrapy crwal weibo后得到数据库中的结果如下 后记 面试题将爬取到的数据一份存储到本地一份存储到数据库如何实现 管道文件中一个管道类对应的是将数据存储到一种平台爬虫文件提交的item只会给管道文件中第一个被执行的管道类接受process_item中的return item表示将item传递给下一个即将被执行的管道类
http://wiki.neutronadmin.com/news/392971/

相关文章:

  • .湖南省建设厅规范网站成都专业网站建设
  • 个人备案网站建设方案书wordpress评论vip
  • 重庆市建设项目环境申报表网站建立英语
  • 刷链接浏览量网站延庆免费网站建设
  • 为网站设计手机版营销网站建设价格
  • 广东十大网站建设排名直播网站建设
  • 奇单网站建设有多少个购物网站
  • 中卫网站建设河北网站推广公司
  • 高校网站群建设研究网站首页效果图
  • 做营销型网站用什么技术上海家装十强企业
  • 山东做网站公司有哪些网页设计流程是什么
  • 个人备案网站名称大全广东东莞邮政编码
  • 郑州做网站哪里便宜上海注册公司代理记账
  • 信息可视化网站新媒体口碑营销案例
  • 中小型网站设计哪家好淘宝店铺装修免费模板
  • 做网站服务器用国外的eyoucms去版权
  • 国家最新政策完美一键优化
  • 上海青浦做网站镇江市远航网络科技有限公司
  • 重庆的主要的网站公司网站怎么做美观
  • 如何做的网站手机可以用利用赞赏码做网站收款
  • dw做旅游网站教程青岛房产网官网网址
  • 做微商网站公司WordPress中文版如何下载
  • 安徽专业网站建设检修html5模板免费下载
  • 怎样看网站做的好不好免费微商城平台官网
  • 网站建设的市场调研分析跨境电商卖什么东西比较好
  • 网站建设合同规定大连网站建设仟亿科技
  • 网站域名怎么做解析建设网站需要那些技术人员
  • 袜子技术支持北京网站建设网站开发和网页开发的区别
  • 企业网站做的好的有什么公司昆明 网站建设兼职
  • 无锡免费网站制作白银市建设局网站首页