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

python基础21(2025.6.28)_全栈爬取_车168以及诗词名句案例

案例一: 诗词名句案例:(代码包里)

创建项目命令:(注意这里的创建和之前的创建的不一样)
scrapy startproject qichezhijia
scrapy genspider -t crawl 项目名 域名

案例二:二手车

一、che168案例解析器代码

class Che168Spider(CrawlSpider):name = "che168"allowed_domains = ["che168.com"]start_urls = ["https://www.che168.com/china/list/#pvareaid=105575"]# 页面上可能会出现的所有标签. 全部记录在案, 做关系映射temp = {"表显里程": "li_cheng","上牌时间":"start_time","挡位/排量": "pai_liang","车辆所在地": "location","查看限迁地": "guo_biao",}rules=  (# 一步到位, 直接干到各个详情页#                                               deny_domains干掉广告的域名Rule(LinkExtractor(restrict_xpaths=("//ul[@class='viewlist_ul']/li",), deny_domains=("topicm.che168.com", )), callback="parse_item"),Rule(LinkExtractor(restrict_xpaths=("//div[@id='listpagination']",)), follow=True))	def parse_item(self, resp):print(resp.url)"""负责, 详情页的解析"""name = resp.xpath("//h3[@class='car-brand-name']/text()").extract_first()li_list = resp.xpath("//ul[@class='brand-unit-item fn-clear']/li")# 为了保证数据格式的完整. 提前初始化item = {"li_cheng": "未知","start_time": "未知","pai_liang": "未知","location": "未知","guo_biao": "未知",}for li in li_list:sm_title = "".join(li.xpath("./p//text()").extract()).replace(" ", "")  # 上牌时间, 挡位 / 排量sm_value = li.xpath("./h4/text()").extract_first().replace(" ", "")key = Che168Spider.temp.get(sm_title)  # 动态的进行匹配.item[key] = sm_valueprint(item)# # 找到有问题的那一个# if item['li_cheng'] =='未知':#     print(resp.url)

代码解析一:关于正则匹配

(图一)
在这里插入图片描述

(图二)
在这里插入图片描述

在这里插入图片描述
分别对应如下代码:
在这里插入图片描述

代码解析二:

(图三):
在这里插入图片描述

对应代码如下:
在这里插入图片描述

解读三:关于Rules的链接提取
在这里插入图片描述
1、deny_domain 主要用于去除多余的广告的域名,如下:
在这里插入图片描述
Rule正则匹配是列表页面的匹配:
在这里插入图片描述

总结:老师说这个crawlspider用的比较少,参考用即可,因为分页爬取,里不能改代码,使用比较少。

http://www.lryc.cn/news/576558.html

相关文章:

  • AUTOSAR图解==>AUTOSAR_AP_EXP_SOVD
  • Linux快速查找文件
  • JVM 之双亲委派机制与打破双亲委派
  • 【安卓Sensor框架-2】应用注册Sensor 流程
  • Everything
  • 深入解析 Electron 核心模块:构建跨平台桌面应用的关键
  • day45 Tensor board使用介绍
  • 【Bluedroid】蓝牙启动之BTM_reset_complete源码解析
  • 虚拟 DOM 与 Diff 算法
  • c++学习(五、函数高级)
  • 【AI智能体】Dify 核心组件从使用到实战操作详解
  • 设计模式-代理模式、装饰者模式
  • 【Java--SQL】${}与#{}区别和危害
  • git使用详解和示例
  • ByteMD+CozeAPI+Coze平台Agent+Next搭建AI辅助博客撰写平台(逻辑清楚,推荐!)
  • epitope3D: 精准预测蛋白表面的“抗原决定簇”
  • ABP VNext + 多数据库混合:SQL Server+PostgreSQL+MySQL
  • 【分布式机架感知】分布式机架感知能力的主流存储系统与数据库软件
  • 安卓应用启动页全版本兼容实战:从传统方案到Android 12+ SplashScreen API最佳实践
  • FPGA产品
  • 关于ubuntu 20.04系统安装分区和重复登录无法加载桌面的问题解决
  • KS值:风控模型的“风险照妖镜”
  • 北大肖臻《区块链技术与应用》学习笔记
  • 趣味数据结构之——数组
  • 给定一个整型矩阵map,求最大的矩形区域为1的数量
  • SRS WebRTC 入门
  • 【大模型】Query 改写常见Prompt 模板
  • 第27篇:SELinux安全增强机制深度解析与OpenEuler实践指南
  • uni-app项目实战笔记26--uniapp实现富文本展示
  • 【Actix Web 精要】Rust Web 服务开发核心技术与实战指南