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

php做的网站源代码在哪里wordpress 适合做什么网站

php做的网站源代码在哪里,wordpress 适合做什么网站,网站营销的分类有哪些,高端网站欣赏目标 在实际开发过程中,我们所需要的数据往往需要通过多个页面的数据汇总得到,通过列表获取到的数据只有简单的介绍。站在Scrapy框架的角度来看,实际上就是考虑如何处理一个item包含多级页面数据的问题。本文将以获取叶子猪网站的手游排行榜及…

目标

        在实际开发过程中,我们所需要的数据往往需要通过多个页面的数据汇总得到,通过列表获取到的数据只有简单的介绍。站在Scrapy框架的角度来看,实际上就是考虑如何处理一个item包含多级页面数据的问题。本文将以获取叶子猪网站的手游排行榜及手游详情为学习案例来解决这个问题。


版本

        Scrapy 2.12.0


实战

第一步:搭建Scrapy框架。略过,如果不会搭建的通过可以看我之前的Scrapy入门文章。

第二步:通过打开目标网页,查看网页代码,我们可以的到手游排行榜的基础信息,这里我们只获取标题。

import scrapyclass SytopSpider(scrapy.Spider):name = "sytop"allowed_domains = ["sy.yzz.cn"]start_urls = ["http://sy.yzz.cn/news/14324-1.shtml"]def parse(self, response):a_list = response.xpath("//ul[@class='item-pt-list']/li/div[1]/a")for a in a_list:# 标题alt = a.xpath("./img/@alt").get()print(alt)

第三步:进入二级页面,获取描述信息。此时日志打印可以看到,单个游戏的信息并没有组合起来。

import scrapyclass SytopSpider(scrapy.Spider):name = "sytop"allowed_domains = ["sy.yzz.cn"]start_urls = ["http://sy.yzz.cn/news/14324-1.shtml"]def parse(self, response):a_list = response.xpath("//ul[@class='item-pt-list']/li/div[1]/a")for a in a_list:# 标题alt = a.xpath("./img/@alt").get()print(alt)# 二级页面的urlinfo_url = a.xpath("./@href").get()print(f'二级页面的url是:{info_url}')meta = {"alt": alt}yield scrapy.Request(url=info_url, callback=self.parse_info)def parse_info(self, response):p_list = response.xpath("//div[@class='content']//p")for p in p_list:content=p.xpath("string(.)").get()print(content)

第四步:组合item数据。scrapy.Request方法中的meta参数很重要,它实现了深度爬取。比如:在爬取多层级页面时,使用 meta 参数传递父页面的信息到子页面。

import scrapyfrom yezizhu.items import YezizhuItemclass SytopSpider(scrapy.Spider):name = "sytop"allowed_domains = ["sy.yzz.cn"]start_urls = ["http://sy.yzz.cn/news/14324-1.shtml"]def parse(self, response):a_list = response.xpath("//ul[@class='item-pt-list']/li/div[1]/a")for a in a_list:# 标题alt = a.xpath("./img/@alt").get()# 二级页面的urlinfo_url = a.xpath("./@href").get()meta = {"alt": alt}yield scrapy.Request(url=info_url, callback=self.parse_info,meta=meta)def parse_info(self, response):p_list = response.xpath("//div[@class='content']//p")print("==============start================")alt = response.meta["alt"]print(alt)content=""for p in p_list:content=content+"\n"+p.xpath("string(.)").get()print(content)

第五步:创建item属性。

class YezizhuItem(scrapy.Item):alt = scrapy.Field()content = scrapy.Field()

第六步:传递item属性值,并将item对象传递给管道。

import scrapyfrom yezizhu.items import YezizhuItemclass SytopSpider(scrapy.Spider):name = "sytop"allowed_domains = ["sy.yzz.cn"]start_urls = ["http://sy.yzz.cn/news/14324-1.shtml"]def parse(self, response):a_list = response.xpath("//ul[@class='item-pt-list']/li/div[1]/a")for a in a_list:# 标题alt = a.xpath("./img/@alt").get()# 二级页面的urlinfo_url = a.xpath("./@href").get()meta = {"alt": alt}yield scrapy.Request(url=info_url, callback=self.parse_info,meta=meta)def parse_info(self, response):p_list = response.xpath("//div[@class='content']//p")print("==============start================")alt = response.meta["alt"]print(alt)content=""for p in p_list:content=content+"\n"+p.xpath("string(.)").get()print(content)top_content=YezizhuItem(alt=alt, content=content)yield top_content

第七步:在settings.py文件中开启管道。

ITEM_PIPELINES = {"yezizhu.pipelines.YezizhuPipeline": 300,
}

第八步:在管道中设置下载数据并启动项目。

import jsonclass YezizhuPipeline:# 在爬虫文件开始之前就执行的方法def open_spider(self, spider):self.fp = open("C:\\Users\\Administrator\\Desktop\\test\\a.json", "w", encoding="utf-8")self.fp.write("[")def process_item(self, item, spider):line = json.dumps(dict(item), ensure_ascii=False) + ",\n"self.fp.write(line)return item# 在爬虫文件执行之后再执行的方法def close_spider(self, spider):# 删除最后一个多余的逗号,并关闭 JSON 数组self.fp.seek(self.fp.tell() - 3, 0)self.fp.write("\n]")self.fp.close()

http://www.yayakq.cn/news/194243/

相关文章:

  • 网站替换图片怎么做广告设计毕业设计作品
  • 铜陵县住房和城乡建设局网站网站优化推广方法
  • 网站建设模块怎么使用公司成立费用
  • 易安卓做网站做网站需要公司资料吗
  • 南京原创网站建设怎么联系wordpress网站被拒登
  • 湖北专业网站建设质量保障做网站信科网站建设
  • 建立大型网站吗陕西省住房和城乡建设厅门户网站
  • 网站建设应用权限sp怎么做视频网站
  • 看电视剧的免费网站app下载新乡seo顾问
  • 网站开发使用数据库的好处啊宝贝才几天没做网站
  • 资料查询网站建设wordpress 获取当前分类名称
  • 定制网站开发公司哪家好?点击查看郑州专业高校网站建设公司
  • 廊坊网站建设公司哪个好百度seo按天计费
  • 国外做的好的鲜花网站网站开发验收模板
  • wordpress编辑器如何增加行距功能百度seo优化推广
  • 网站建设需要多少天时间有哪些企业可以做招聘的网站有哪些内容
  • 如何填写网站建设计划表网线制作实验心得体会
  • 泰安住房和城乡建设厅网站wordpress 文章批量移动
  • 在国外做网站网站犯法吗义乌论坛网站建设
  • 中国建设基础设施公司网站动漫网站开发优势
  • 网站建设制作解决方案网站改版的方式大致有
  • 海洋公司做网站科学新概念seo外链平台
  • 钱网站制作营销型网站建设一般包含哪些内容
  • 用网站模板做新网站西安网站建设发布
  • 东莞网站建设公司辉煌大厦wordpress自动换行
  • 网站没有关键词收录商城网站开发费用一般是多少
  • 单位网站建设 管理制度做个网站多少钱 百度能查到的
  • 婚纱网站策划书腾讯企点有什么用
  • 顺德网站制作案例机构企业建站多站点管理系统
  • 怎么做才能使网站ip增多嘉兴网站推广优化