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

永年区住房和城乡建设局网站知名建站企业哪家好

永年区住房和城乡建设局网站,知名建站企业哪家好,网站精简布局,网站优化公司上海接上篇《49、当当网Scrapy项目实战#xff08;二#xff09;》 上一篇我们讲解了的Spider与item之间的关系#xff0c;以及如何使用item#xff0c;以及使用pipelines管道进行数据下载的操作#xff0c;本篇我们来讲解Scrapy的多页面下载如何实现。 一、多页面下载原理分…接上篇《49、当当网Scrapy项目实战二》 上一篇我们讲解了的Spider与item之间的关系以及如何使用item以及使用pipelines管道进行数据下载的操作本篇我们来讲解Scrapy的多页面下载如何实现。 一、多页面下载原理分析 1、多页面数据下载主要思路 我们之前编写的爬虫主要是针对当当网书籍详情首页的列表数据进行下载也只能下载第一页已经加载好的列表数据 如果我们想要下载该种书籍的多页数据例如1到100页的数据这就涉及到爬虫的多页面下载逻辑了。 我们现在可以思考一下我们下载从第1页到第100页的书籍详情列表数据数据结构和取数逻辑是否是一样的答案是一样的。 所以我们在爬虫文件中编写的数据列表数据获取逻辑是核心程序是不需要修改的我们只需要把每一页的新内容传输给它它进行数据转换清洗变成数据结构对象最后存储到文件中去即可。如同下图 我们要做的事情就是在爬虫中parse函数执行第1页请求完毕后再使用parse函数执行第2页、第3页等等的请求即可。 2、如何获取多个页面的数据 我们如何来获取第2页及之后的数据呢首先我们进入图书列表页分别点击后面的第2页、第3页并记录一下浏览器上面的地址 我们分别看一下第1页、第2页、第3页的网址 聪明的童鞋应该可以看出区别了吧没错从第1页之后每页页面在“cp01”前会有一个“pgx-”而其中的“x”就是当前的页码数。所以我们要获取某一页的数据就只需要修改“pg”后面的数字为几即可拿到相关页面的数据了。 二、多页面下载程序编写 1、指定相关路径 此时我们在爬虫文件中就需要指定起始页面是什么然后后续的迭代页面是什么代码如下 class DangSpider(scrapy.Spider):name dang# 如果为多页下载必须将allowed_domains的范围调整为主域名allowed_domains [category.dangdang.com]start_urls [http://category.dangdang.com/cp01.22.01.00.00.00.html]base_url http://category.dangdang.com/pgend_url -cp01.22.01.00.00.00.htmlpage 1#......下面代码省略...... 其中的base_url是迭代页面的主地址信息end_url是页码获取后拼接的静态页面固定地址page是下一次要抓取的页面的页码数。 2、编写多页面下载判定与执行逻辑 然后我们在之前parse函数结束中的for循环结束后编写一个页面判断的逻辑注意是在for循环的外面parse函数的里面 if self.page 100:  # 判断当前页面是否在100页以内self.page self.page 1  # 获取下一个页码# 根据获取的页码拼接下一个需要爬取的页面url地址url self.base_url str(self.page) self.end_url# 回调爬虫的parse函数用新的url继续进行数据爬取# scrapy.Request就是scrapy的get请求# 其中的url是请求地址callback是需要执行的爬虫的函数注意不需要加圆括号yield scrapy.Request(urlurl,callbackself.parse) 3、测试效果 这是我们删除原来抓取的book.json中的所有数据清理下载的书籍图片然后通过“scrapy crawl dang”命令执行我们的dang.py爬虫 程序执行后可以看到爬虫在逐页爬取相关数据 等待爬虫执行完毕这里我爬了101页是因为上面小于100写成小于等于了 我们可以看到json文件又被写满了 其中最后一个数据和当前网站的第100页的数据基本吻合 查看一下图片发现也是全部下载下来了1页60条数据100页共6000张封面我们下载了5700多张说明1到100页的数据已经基本全部抓取过来了 4、完整代码 下面是刚刚上面优化完毕后的Scrapy爬虫逻辑的完整代码 import scrapyfrom scrapy_dangdang_01.items import ScrapyDangdang01Itemclass DangSpider(scrapy.Spider):name dang# 如果为多页下载必须将allowed_domains的范围调整为主域名allowed_domains [category.dangdang.com]start_urls [http://category.dangdang.com/cp01.22.01.00.00.00.html]base_url http://category.dangdang.com/pgend_url -cp01.22.01.00.00.00.htmlpage 1def parse(self, response):# 获取所有的图书列表对象li_list response.xpath(//ul[idcomponent_59]/li)# 遍历li列表获取每一个li元素的几个值for li in li_list:# 书籍图片src li.xpath(.//img/data-original).extract_first()# 第一张图片没有data-original属性所以会获取到控制此时需要获取src属性值if src:src srcelse:src li.xpath(.//img/src).extract_first()# 书籍名称title li.xpath(.//img/alt).extract_first()# 书籍作者search_book_author li.xpath(./p[classsearch_book_author]//span[1]//a[1]/title).extract_first()# 书籍价格price li.xpath(./p[classprice]//span[classsearch_now_price]/text()).extract_first()# 书籍简介detail li.xpath(./p[classdetail]/text()).extract_first()# print()# print(【图片地址】, src)# print(【书籍标题】, title)# print(【书籍作者】, search_book_author)# print(【书籍价格】, price)# print(【书籍简介】, detail)# 将数据封装到item对象中book ScrapyDangdang01Item(srcsrc, titletitle, search_book_authorsearch_book_author, priceprice, detaildetail)# 获取一个book对象就将该对象交给pipelinesyield bookif self.page 100:  # 判断当前页面是否在100页以内self.page self.page 1  # 获取下一个页码# 根据获取的页码拼接下一个需要爬取的页面url地址url self.base_url str(self.page) self.end_url# 回调爬虫的parse函数用新的url继续进行数据爬取# scrapy.Request就是scrapy的get请求# 其中的url是请求地址callback是需要执行的爬虫的函数注意不需要加圆括号yield scrapy.Request(urlurl,callbackself.parse) 至此关于Scrapy实战项目的多页数据下载的内容就全部介绍完毕。下一篇我们来讲解电影天堂网站的多页面下载继续巩固一下多页面下载技术。 参考尚硅谷Python爬虫教程小白零基础速通转载请注明出处https://guangzai.blog.csdn.net/article/details/136605061
http://www.w-s-a.com/news/319342/

相关文章:

  • 建设银行网站无法打开2021年有没有人给个网站
  • 高端手机网站建设网站建设岗位绩效
  • 泰安网络推广 网站建设 网站优化免费素材网站psd
  • 做企业网站联系网站开发具体的工作内容
  • 联合易网北京网站建设公司怎么样网站页面开发流程
  • 2015做那些网站能致富网站建设审批表
  • 深圳 网站设计个人名片模板
  • 网站建设费用选网络专业网站在线推广
  • 天津建设网站c2成绩查询用记事本制作html网页代码
  • 织梦二次开发手机网站如何成为一名设计师
  • 网站公司建设网站镇江本地网站
  • 网页设计后面是网站建设吗凡客诚品的配送方式
  • 万链网站做的怎么样?深圳门户网站开发
  • 在线设计工具的网站怎么做wordpress多语言版本号
  • 建设购物网站要求优秀网站大全
  • 平顶山做网站公司用源码网站好优化吗
  • 网上电商游戏优化大师手机版
  • 个人微信公众号怎么做微网站吗网站域名需要续费吗
  • 有效的网站建设公丹阳做网站的
  • 哪些行业做网站的多学企业网站开发
  • 外贸seo网站制作网站备案的流程
  • 网站布局教程wordpress 侧边栏位置
  • 谁有手机网站啊介绍一下dedecms 网站重复文章
  • 博客网站快速排名微信机器人免费版wordpress
  • 孝感网站建设xgshwordpress网站基础知识
  • 百度为什么会k网站长沙做网站找哪家好
  • 揭阳商城网站建设新闻稿发布平台
  • 电商网站建设免费在线优化网站
  • 厦门网站建设咨询挣钱最快的小游戏
  • 郑州网站网络营销莱芜雪野湖别墅