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

网站建设的用户体验电脑上重新下载一个wordpress

网站建设的用户体验,电脑上重新下载一个wordpress,查公司资质在哪个网站,保定网站开发公司入门案例 学习目标 创建一个Scrapy项目定义提取的结构化数据(Item)编写爬取网站的Spider并提取出结构化数据(Item)编写Item Pipelines来存储提取到的Item(即结构化数据) 一、新建项目(scrapy startproject) 在开始爬取之前#xff0c;必须创建一个新的Scrapy项目。进入自定… 入门案例 学习目标 创建一个Scrapy项目定义提取的结构化数据(Item)编写爬取网站的Spider并提取出结构化数据(Item)编写Item Pipelines来存储提取到的Item(即结构化数据) 一、新建项目(scrapy startproject) 在开始爬取之前必须创建一个新的Scrapy项目。进入自定义的项目目录中运行下列命令 scrapy startproject cnblogSpider其中cnblogSpider为项目名称可以看到将会创建一个cnblogSpider文件夹目录结构大致如下 scrapy.cfg:项目部署文件 cnblogSpider/: 该项目的python模块之后可以在此加入代码 cnblogSpider/items.py: 项目中的item文件。 cnblogSpider/pipelines.py: 项目中的Pipelines文件。 cnblogSpider/settings.py: 项目的配置文件。 cnblogSpider/spiders/: 放置Spider代码的目录。 二、明确目标(mySpider/items.py) 我们打算抓取“http://www.cnblogs.com/miqi1992/default.html?page2” 网站里博客地址、标题、创建时间、文本。 打开cnblogSpider目录下的items.pyitem定义结构化数据字段用来保存爬取到的数据有点像Python中的dict,但是提供了一些额外的保护减少错误。可以通过创建一个scrapy.item类并且定义类型为scrapy.Field的类属性来定义一个Item(可以理解成类似于ORM的映射关系)。接下来创建一个CnblogspiderItem类和模型item模型(model)。 python import scrapy class CnblogspiderItem(scrapy.Item): # define the fields for your item here like: url scrapy.Field() time scrapy.Field() title scrapy.Field() content scrapy.Field() 三、制作爬虫(spiders/cnblogsSpider.py) 爬虫功能主要分两步 1. 爬数据 在当前目录下输入命令将在cnblogSpider/spiders目录下创建一个名为cnblog的爬虫并制定爬取域的范围 scrapy genspider cnblog “cnblogs.com”打开cnblogSpider/spiders目录下的cnblog默认增加了下列代码 python -- coding: utf-8 -- import scrapy class CnblogSpider(scrapy.Spider): name ‘cnblog’ allowed_domains [‘cnblogs.com’] start_urls [‘http://cnblogs.com/’] def parse(self, response):pass其实也可以由我们自行创建cnblog.py并编写上面的代码只不过使用命令可以免去编写固定代码的麻烦 要建立一个Spider,你必须用scrapy.Spider类创建一个子类并确定了三个强制的属性和一个方法。 name : 这个爬虫的识别名称必须是唯一的在不同的爬虫必须定义不同的名字。 allow_domains[]: 是搜索的域名范围也就是爬虫的约束区域规定爬虫只爬取这个域名下的网页不存在的URL会被忽略。 start_urls():爬取的URL元祖/列表。爬虫从这里开始爬取数据所以第一次下载的数据将会从这些urls开始。其他子URL将会从这些起始URL中继承性生成。 parse(self, response):解析的方法每个初始URL完成下载后将被调用调用的时候传入从每一个URL传回的Response对象来作为唯一参数主要作用如下 负责解析返回的网页数据(respose.body),提取结构化数据(生成item)生成需要下一页的URL请求 将start_urls的值改为需要爬取的第一个url start_urls(http://www.cnblogs.com/miqi1992/default.html?page2)修改parse()方法 def parse(self, response):filename cnblog.htmlwith open(filename, w) as f:f.write(response.body)然后运行一下看看在cnblogSpider目录下运行 scrapy crawl cnblog是的就是cnblog,看上面代码它是CnblogSpider类的name属性也就是scrapy genspider命令的唯一爬虫名。 运行之后如果打印的日志出现[scrapy]INFO: Spider closed(finished)代表执行完成。之后当前文件夹中就出现了一个cnblog.html文件里面就是我们刚刚要爬取的网页的全部源代码信息。 #注意Python2.x默认编码环境是ASCII当和取回的数据编码格式不一致时可能会造成乱码; #我们可以指定保存内容的编码格式一般情况下我们可以在代码最上方添加 import os reload(sys) sys.setdefaultencoding(utf-8) #这三行代码是Python2.x里面解决中文编码的万能钥匙警告这么多年的吐槽后Python3学乖了默认编码是Unicode了2.爬数据 爬取整个网页完毕接下来就是取过程了首先观察页面源码 div classdaydiv classdayTitle.../divdiv classpostTitle.../divdiv classpostCon.../div /divXPath表达式如下 所有文章.//*[class‘day’]文章发表时间.//*[class‘dayTitle’]/a/text()文章标题内容.//*[class‘postTitle’]/a/text()文章摘要内容.//*[class‘postCon’]/div/text()文章链接.//*[class‘postTitle’]/a/href 是不是一目了然直接上XPath开始提取数据吧。 我们之前在cnblogSpider/items.py里定义了一个CnblogItem类。这里引入进来 from cnblogSpider.items import CnblogspiderItem然后将我们得到的数据封装到一个CnblogspiderItem对象中可以保存每个博客的属性 python form cnblogSpider.items import CnblogspiderItem def parse(self, response): # print(response.body) # filename “cnblog.html” # with open(filename, ‘w’) as f: # f.write(response.body) #存放博客的集合items []for each in response.xpath(.//*[classday]):item CnblogspiderItem()url each.xpath(.//*[classpostTitle]/a/href).extract()[0]title each.xpath(.//*[classpostTitle]/a/text()).extract()[0]time each.xpath(.//*[classdayTitle]/a/text()).extract()[0]content each.xpath(.//*[classpostCon]/div/text()).extract()[0]item[url] urlitem[title] titleitem[time] timeitem[content] content items.append(item)#直接返回最后数据return items我们暂时先不处理管道后面会详细介绍。 保存数据 scrapy保存信息的最简单的方法主要有四种 -o 输出指定格式的文件命令如下 #json格式默认为Unicode编码 scrapy crawl cnblog -o cnblog.json#json lines格式默认为Unicode编码 scrapy crawl cnblog -o cnblog.jsonl#csv逗号表达式可用excel打开 scrapy crawl cnblog -o cnblog.csv#xml格式 scrapy crawl cnblog -o cnblog.xml思考 如果将代码改成下面形式结果完全一样 请思考yield在这里的作用 form cnblogSpider.items import CnblogspiderItemdef parse(self, response):# print(response.body)# filename cnblog.html# with open(filename, w) as f:# f.write(response.body)#存放博客的集合# items []for each in response.xpath(.//*[classday]):item CnblogspiderItem()url each.xpath(.//*[classpostTitle]/a/href).extract()[0]title each.xpath(.//*[classpostTitle]/a/text()).extract()[0]time each.xpath(.//*[classdayTitle]/a/text()).extract()[0]content each.xpath(.//*[classpostCon]/div/text()).extract()[0]item[url] urlitem[title] titleitem[time] timeitem[content] content # items.append(item)#将获取到的数据交给pipelinesyield item#直接返回最后数据,不经过pipelines#return items更多Python的学习资料可以扫描下方二维码无偿领取 1Python所有方向的学习路线新版 总结的Python爬虫和数据分析等各个方向应该学习的技术栈。 比如说爬虫这一块很多人以为学了xpath和PyQuery等几个解析库之后就精通的python爬虫其实路还有很长比如说移动端爬虫和JS逆向等等。 2Python学习视频 包含了Python入门、爬虫、数据分析和web开发的学习视频总共100多个虽然达不到大佬的程度但是精通python是没有问题的学完这些之后你可以按照我上面的学习路线去网上找其他的知识资源进行进阶。 3100多个练手项目 我们在看视频学习的时候不能光动眼动脑不动手比较科学的学习方法是在理解之后运用它们这时候练手项目就很适合了只是里面的项目比较多水平也是参差不齐大家可以挑自己能做的项目去练练。 。
http://www.zqtcl.cn/news/300358/

相关文章:

  • 百度指数查询平台网站建设SEO优化哪家好
  • 网站怎么在成都备案中企动力如何
  • 免费数据统计网站app推广拉新一手渠道
  • 网站推广效果不好原因zac seo博客
  • 高端网站设计合肥网站建设个人网站建设公
  • 廊坊建站模板系统做效果图的网站
  • 建网站打开需要验证四川省成都市建设厅官网
  • 网站文章列表如何排版珠海建设工程信息网站
  • 郑州个人做网站建设银行招聘网站
  • 杭州网站设计公司联系亿企邦网站怎么上百度
  • 网站建设的未来网站不备案访问
  • 网站改版效果图怎么做网站建设的五个基本要素
  • 河南建站网站做o2o网站需要多少钱
  • 重庆企业网站定制开发公司wordpress用户页
  • 电子商务网站seo网站规划与设计方向
  • 外贸双语网站源码wordpress 柚子
  • 隆昌市住房和城乡建设厅网站html5网页成品代码
  • 泉州丰泽建设局网站wordpress设置logo和公司名
  • 网页与网站设计实验总结网上商城互联网网站开发
  • 学院宣传网站建设简介郑州加盟网站建设
  • 上海网站建设sheji021wordpress ssl 图片
  • 网站管理人员队伍建设说明材料搞笑网站建设目的和意义
  • 网站建设应该考虑哪些问题如何规划网站栏目
  • 照片网站模版广告设计软件哪个好用
  • 商城网站前端更新商品天天做吗惠州网络营销公司
  • 买高端品牌网站建设公司做网站比较好的平台
  • 找个网站这么难2021公司名称大全好听
  • 网站要实名认证网站建设 简易合同
  • 网站建站公司费用建设网站改版
  • 做网站php与python新渝网门户网