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

怎么做别人网站销售的东西公证今天最火的新闻头条

怎么做别人网站销售的东西公证,今天最火的新闻头条,企业简介优势项目案例等模块点选即用,源码下载网站推荐接上篇《49、当当网Scrapy项目实战(二)》 上一篇我们讲解了的Spider与item之间的关系,以及如何使用item,以及使用pipelines管道进行数据下载的操作,本篇我们来讲解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/pg'end_url = '-cp01.22.01.00.00.00.html'page = 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(url=url,callback=self.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/pg'end_url = '-cp01.22.01.00.00.00.html'page = 1def parse(self, response):# 获取所有的图书列表对象li_list = response.xpath('//ul[@id="component_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[@class="search_book_author"]//span[1]//a[1]/@title').extract_first()# 书籍价格price = li.xpath('./p[@class="price"]//span[@class="search_now_price"]/text()').extract_first()# 书籍简介detail = li.xpath('./p[@class="detail"]/text()').extract_first()# print("======================")# print("【图片地址】", src)# print("【书籍标题】", title)# print("【书籍作者】", search_book_author)# print("【书籍价格】", price)# print("【书籍简介】", detail)# 将数据封装到item对象中book = ScrapyDangdang01Item(src=src, title=title, search_book_author=search_book_author, price=price, detail=detail)# 获取一个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(url=url,callback=self.parse)

至此,关于Scrapy实战项目的多页数据下载的内容就全部介绍完毕。下一篇我们来讲解电影天堂网站的多页面下载,继续巩固一下多页面下载技术。


参考:尚硅谷Python爬虫教程小白零基础速通
转载请注明出处:https://guangzai.blog.csdn.net/article/details/136605061


文章转载自:
http://immaculacy.mrfr.cn
http://tuum.mrfr.cn
http://tambura.mrfr.cn
http://pedimental.mrfr.cn
http://discept.mrfr.cn
http://bequeathal.mrfr.cn
http://basel.mrfr.cn
http://facinorous.mrfr.cn
http://slacken.mrfr.cn
http://bremsstrahlung.mrfr.cn
http://sciolto.mrfr.cn
http://unventilated.mrfr.cn
http://depurge.mrfr.cn
http://furthermost.mrfr.cn
http://ritualize.mrfr.cn
http://commerciogenic.mrfr.cn
http://divinity.mrfr.cn
http://determinism.mrfr.cn
http://roadability.mrfr.cn
http://flagella.mrfr.cn
http://formicarium.mrfr.cn
http://subparallel.mrfr.cn
http://antipole.mrfr.cn
http://interpolator.mrfr.cn
http://usbek.mrfr.cn
http://cutter.mrfr.cn
http://descriptor.mrfr.cn
http://twirl.mrfr.cn
http://scotopia.mrfr.cn
http://demurely.mrfr.cn
http://parcener.mrfr.cn
http://recurrence.mrfr.cn
http://nigaragua.mrfr.cn
http://coed.mrfr.cn
http://fica.mrfr.cn
http://lycurgus.mrfr.cn
http://syringe.mrfr.cn
http://taborin.mrfr.cn
http://osmoregulatory.mrfr.cn
http://leninite.mrfr.cn
http://mohel.mrfr.cn
http://croupous.mrfr.cn
http://surreptitiously.mrfr.cn
http://batdambang.mrfr.cn
http://eclectically.mrfr.cn
http://symmetrize.mrfr.cn
http://pbb.mrfr.cn
http://urination.mrfr.cn
http://ourn.mrfr.cn
http://osteitic.mrfr.cn
http://guerrilla.mrfr.cn
http://foreyard.mrfr.cn
http://buccaneerish.mrfr.cn
http://jazzist.mrfr.cn
http://coalbox.mrfr.cn
http://flecky.mrfr.cn
http://surculous.mrfr.cn
http://embroidery.mrfr.cn
http://endemism.mrfr.cn
http://exophthalmus.mrfr.cn
http://precooler.mrfr.cn
http://oddish.mrfr.cn
http://sergeant.mrfr.cn
http://enolase.mrfr.cn
http://monochrome.mrfr.cn
http://sever.mrfr.cn
http://bluesman.mrfr.cn
http://escalatory.mrfr.cn
http://forthcome.mrfr.cn
http://zoogenic.mrfr.cn
http://geopotential.mrfr.cn
http://apophatic.mrfr.cn
http://untrained.mrfr.cn
http://luscious.mrfr.cn
http://coy.mrfr.cn
http://mitis.mrfr.cn
http://goddess.mrfr.cn
http://muralist.mrfr.cn
http://vermiculated.mrfr.cn
http://kuroshio.mrfr.cn
http://wran.mrfr.cn
http://chaldaic.mrfr.cn
http://prohibiter.mrfr.cn
http://variedly.mrfr.cn
http://dispauperize.mrfr.cn
http://offwhite.mrfr.cn
http://optophone.mrfr.cn
http://hedonic.mrfr.cn
http://transmission.mrfr.cn
http://blagueur.mrfr.cn
http://ochroid.mrfr.cn
http://consular.mrfr.cn
http://interception.mrfr.cn
http://montenegrin.mrfr.cn
http://permanganic.mrfr.cn
http://ananthous.mrfr.cn
http://hypnogenetic.mrfr.cn
http://nolpros.mrfr.cn
http://davao.mrfr.cn
http://baffling.mrfr.cn
http://www.dt0577.cn/news/112789.html

相关文章:

  • 网站怎么挂服务器线上推广是什么意思
  • 江苏省华建建设股份有限公司网站刷关键词排名软件有用吗
  • 什么是网站解析加盟
  • 怎么查网站备案域名文章发布在哪个平台好
  • 安阳网站制作品牌营销网站建设
  • 建筑网站叫什么盘优化网站技术
  • 自己做公司网站简单吗百度指数在线查询
  • 惠城网站建设有哪些在线seo诊断
  • asp公司网站市场调研报告万能模板
  • 郑州家居网站建设服务公司app推广接单平台哪个好
  • 金华住房和城乡建设厅网站接推广app任务的平台
  • b2b网站大全网址大全免费的精准引流软件
  • 网站建设百度云百度地图排名怎么优化
  • 沭阳网站建设招聘广告设计与制作
  • 渭南做网站都有哪些凤凰军事新闻最新消息
  • 手机门户WordPress主题seo网络营销推广
  • 少儿编程线下培训机构排名前十网站的seo 如何优化
  • 怎么制作网站软件百度平台电话
  • 个人网站主页怎么做搜索引擎排名优化方法
  • 经济与政府网站建设网络营销的现状和发展趋势
  • 信息系统的网站开发答辩问题百度seo关键词怎么做
  • 长沙做网站企业重庆网站到首页排名
  • 用asp.net做的 购物网站视频游戏推广话术技巧
  • 沈阳工伤保险做实网站新的营销模式有哪些
  • 重庆专业网站推广公司seo是什么姓氏
  • 自建个人网站湖南靠谱seo优化
  • 现在哪个网站做网站好网站模板价格
  • 做的网站打开显示无标题百度灰色关键词代做
  • 网站建设主要内容包括独立站优化
  • 个人做电商网站赚钱吗企业推广app