python之Scrapy 的Xpath常用定位相关
xpth通过text值获取定位并提取同级节点text
<div class="lef-bd"><ul class="dot2"><li><dl><dt>联系人:</dt><dd>李先生</dd></dl></li><li><dl><dt>电 话:</dt><dd>0371-88888888</dd></dl></li><li><dl><dt>手 机:</dt><dd>18188888888</dd></dl></li><li><dl><dt>传 真:</dt><dd>0371-88888888</dd></dl></li><li><dl><dt>地 址:</dt><dd>河南 郑州 中原区 大学科技园X座XX层</dd></dl></li><li><dl><dt>客 服:</dt><dd class="a_kf"><a onclick="chinacn.openQQ(888888888,32045);" rel="nofollow" target="_blank" title="点击这里给我发消息" class="qqjt"></a></dd></dl></li></ul><div class="map_dt"></div>
response.xpath("//div[@class='lef-bd']//dt[contains(text(),'联系人')]/following-sibling::dd").extract_first("")
获取到“联系人”同级节点的 李先生
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
CMD快速测试xpath,在安装了scrapy的虚拟环境下运行命令:
scrapy shell http://xxx.xxx.com
可运行命令进行测试提取结果:
>>> tite = response.xpath('//div[@class="entry-header"]/h1/text()').extract()
>>> tite
>>> ['5 款 Linux 街机游戏']
这样就提取出数组形式的结果,可以通过访问数组来获取成员:
>>> tite.extract()[0]
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
提取h1标签的值
tite = response.xpath('//div[@class="entry-header"]/h1/text()')
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
遇到如:日期·版块·分类 在一起的这种(http://blog.jobbole.com/114636/)
<p class="entry-meta-hide-on-mobile">2019/01/11 · <a href="http://blog.jobbole.com/category/it-tech/" rel="category tag">IT技术</a>· <a href="http://blog.jobbole.com/tag/linux/">Linux</a></p>
使用命令:
response.xpath('//p[@class="entry-meta-hide-on-mobile"]/text()').extract()[0
].strip().replace("·","")
==命令解释==
extract()[0] = 提取数组成员
strip() = 去除空格
.replace("·","") = 将“·”替换为空
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
通过contains函数 搜索包含某个属性值的xptah
<span data-post-id="114636" class=" btn-bluet-bigger href-style vote-post-up register-user-only "><i class="fa fa-thumbs-o-up"></i> <h10 id="114636votetotal">1</h10> 赞</span>
命令:
response.xpath("//span[contains(@class,'vote-post-up')]/h10/text()")将值直接转换为int类型int(response.xpath("//span[contains(@class,'vote-post-up')]/h10/text()").extract()[0])
==命令解释==
//标签中 [搜索(@class包含'vote-post-up')]/h10/的值
需要将值转换为int类型直接 int(.....)
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
遇到如:156 收藏 这种数字+文字或字母的,需要用re正则进行替换(CMD命令:ipython)
In [6]: m = re.match(".*?(\d+).*","156 收藏")In [7]: if m:...: print(m.group(1))...:
156
==命令解释==
m = re.match(“正则表达式”,“内容”)
if m: (判断如果有值)
print(m.group(1)) (获取第1个)
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
python之Scrapy 的Xpath常用定位相关相关推荐
- java xpath 函数,XPath常用定位节点元素语句总结 - 中国龍 - 博客园
将一个XML或HTML文档转换成了DOM树结构后,如何才能定位到特定的节点?XPath实现了这样的功能,它通过DOM树中节点的路径和属性来导航,通过XPath路径表达式可以选择DOM树中的nodes( ...
- Python之Scrapy爬虫的常用命令
Scrapy爬虫的常用命令: Scrapy命令行是为持续运行设计的专业爬虫框架. 常用的Scrapy,命令有三个: startproject genspider crawl Scrapy为什么采用命令 ...
- python中xpath定位_xpath最新:关于python中的xpath解析定位_爱安网 LoveAn.com
关于"xpath"的最新内容 聚合阅读 这篇文章主要介绍了关于python中的xpath解析定位,具有很好的参考价值,希望对大家有所帮助.一起跟随小编过来看看吧... 这篇文章主要 ...
- 【Python笔记】网络爬虫——常用框架介绍以及 Scrapy 框架使用
网络爬虫开发常用框架 Scrapy 爬虫框架 Crawley 爬虫框架 PySpider 爬虫框架 Scrapy 爬虫框架的使用 搭建 Scrapy 爬虫框架 1. 安装 Twisted 模块 2. ...
- xpath常用的元素定位方式
xpath常用的元素定位方式 xpath是比较常用的一种定位元素的方式,因为它很方便,缺点是,消耗系统性能.如果Xpath使用的比较好,几乎可以定位到任何页面元素,而且受页面变化影响较小.(以下是个人 ...
- Python爬虫:关于scrapy、Gerapy等爬虫相关框架和工具
框架名称 作用 地址 scrapy 爬虫框架 https://github.com/scrapy/scrapy Scrapyd 部署启动.状态监控 https://github.com/scrapy/ ...
- 《使用 Python 和 Scrapy 半小时爬了 10 个在线商店的网页》
Scrapy 是 Python 开发的一个快速,高层次的屏幕抓取和 web 抓取框架,用于抓取 web 站点并从页面中提取结构化的数据.Scrapy 用途广泛,可以用于数据挖掘.监测和自动化测试.本文 ...
- python 静态网页_Python静态网页爬虫相关知识
想要开发一个简单的Python爬虫案例,并在Python3以上的环境下运行,那么需要掌握哪些知识才能完成一个简单的Python爬虫呢? 爬虫的架构实现 爬虫包括调度器,管理器,解析器,下载器和输出器. ...
- Python|Git remote|hosts|PyCharm常用快捷键|变量转换|命名|类型|运算符|分支|调整tab|循环|语言基础50课:学习记录(1)-项目简介及变量、条件及循环
目录 系列目录 均引自原项目地址: Python语言基础50课简介及相关网址 修改 hosts 文件 解决 GitHub 上图片无法显示 视频资源 Python语言基础50课代码等文件资源 表1. P ...
- python 宏处理库_常用的Python库,给大家分享一下!
Tkinter---- Python默认的图形界面接口. Tkinter是一个和Tk接口的Python模块,Tkinter库提供了对Tk API的接口,它属于Tcl/Tk的GUI工具组.Tcl/Tk是 ...
最新文章
- 图解|什么是缺页错误Page Fault
- 语音识别、传统语音识别、带权有限转态转换器、深度语音识别、时序分类、CTC解码
- 最近的一次敏捷项目Scrum经验总结
- mysql proxy 读写分离 1
- Keil Debug(printf) Viewer的使用
- TVS选型(车载电子产品篇)
- win7笔记本为手机共享wifi
- Java—简单的注册页面
- .net中的硬盘操作(针对Windows )
- 【Spring学习笔记-MVC-17】Spring MVC之拦截器
- 手机在线测试黄疸软件,在家怎么用手机测黄疸
- 老机型能更新鸿蒙,华为和荣耀老机型用户有福:确定能批量升级到鸿蒙系统!...
- JeecgBoot低代码平台 2.4.5 版本发布,钉钉与企业微信集成版本
- sql truncate_SQL Truncate和SQL Delete语句的内部
- DUL[2020-CVPR]
- 软文营销成功案例:如何进行媒体宣发-世媒讯
- 【VBA研究】输出PDF文件合并时出错
- Android11对比IOS14,iPhone11升级至iOS14,对比苹果iOS13,迎来3大新变化
- 【JSP综合课程设计】图书借阅系统设计与实现
- 图片一放大就模糊怎么办?图片无损放大器来帮忙
热门文章
- 高效人士的7个好习惯,由内而外全面造就自己
- 用Acrobat pro DC 自动生成pdf目录——知网硕博论文为例(附带如何下载只有caj的pdf)
- 计算机平面设计大专学校排名,平面设计学校排名哪些较好?
- 免费的HTTP代理IP服务器地址
- 2、Docker部署的Onlyoffice中文字体修改
- 用Tableau制作10种漂亮的饼图
- 【自学与引导】 大数据技术 技能课程总结篇
- GBASE 8s UDR内存管理_01_mi_alloc
- 数据库服务器的打开方式
- [渝粤教育] 哈尔滨工业大学 大学计算机—计算思维导论 参考 资料