美团的项目下载地址(一):Xpath的使用方法

优采云 发布时间: 2021-06-02 01:34

  美团的项目下载地址(一):Xpath的使用方法

  在github上找一个美团项目,可以获取到指定城市的商家信息,分分钟上百条商家信息数据在手,信息包括店铺名称、地理位置、评分、销量,电话(这就是重点)。

  好久没更新了。今天写了文章,附上这个很有价值的项目的下载地址。

  本文是自己写的xpath笔记。不想看的可以到【k13】底部代码下载地址。

  可惜项目是用scrapy写的。其实我是不想用框架的,但是把这个项目改成可以运行的代码,花了一天的时间。我在变更过程中再次熟悉了scrapy。决定学习xpath,然后我会用scrapy写几个爬虫。

  除了css,scrapy的选择器比xpath好。现在需要练习xpath的使用。

  Xpath 简介

  一般来说,使用id、name、class等属性定位节点可以解决大部分解析需求,但有时在以下情况下,使用Xpath更方便:

  没有id、名字、班级等

  标签的属性或文本特征不重要

  标签嵌套层次太复杂

  Xpath 是对 XML 路径的介绍。基于 XML 树结构,您可以在整个树中找到目标节点。由于 HTML 文档本身是一个标准的 XML 页面,我们可以使用 XPath 语法来定位页面元素。

  Xpath 定位方法

  一、Xpath 路径

  

  Xpath 路径示例

  定位节点

  

#查找html下的body下的form下的所有input节点

/html/body/form/input

#查找所有input节点

//input

  *通配符选择未知节点**

  

#查找form节点下的所有节点

//form/*#查找所有节点//*

#查找所有input节点(input至少有爷爷辈亲戚节点)

//*/input

  二、 使用索引(这是我自己的理解)

  如果过滤元素时有多个节点,但我们想确定唯一的节点。您可以使用类似于列表索引的方式进行精确定位。

  案例

  

#定位 第8个td下的 第2个a节点

//*/td[7]/a[1]

#定位 第8个td下的 第3个span节点

//*/td[7]/span[2]

#定位 最后一个td下的 最后一个a节点

//*/td[last()]/a[last()]

  三、使用属性

  为了让定位更准确,类似于使用索引,我们需要增加信息量,所以我们也可以使用属性。 @Symbol 是一个属性符号

  #定位所有包含name属性的input节点

//input[@name]

#定位含有属性的所有的input节点

//input[@*]

#定位所有value=2的input节点

//input[@value='2']

#使用多个属性定位

//input[@value='2'][@id='3']

或者//input[@value='2' and @id='3']

  四、常用功能

  除了索引和属性,Xpath还可以使用方便的功能来提升定位的准确性。下面是几个常用的函数:

  

  

应用推广

#定位href属性中包含“promote.html”的所有a节点

//a[contains(@href,'promote.html')]

#元素内的文本为“应用推广”的所有a节点

//a[text()='应用推广']

#href属性值是以“/ads”开头的所有a节点

//a[starts-with(@href,'/ads')]

  五、Xpath 轴

  这部分类似于BeautifulSoup中的sibling、parents和children方法。有时为了实现定位,需要绕道而行,七阿姨和八阿姨的远房亲戚四处走走相识,定位就完成了。

  

  六、美团商户信息

  在代码中,我提供了一个高科技的api_key,但是如果你用的太多,对方实际上是无法使用它的。我建议你自己申请一个。

  

#在高德注册,进入控制台

http://lbs.amap.com/

  

  

  这是郑州市在几十秒内采集的数据。

  

  提示:

  修改高德api_key

  在项目中找到设置,将GAODEAPIKEY参数修改为你申请号的api_key。

  更改城市

  在项目中找到设置,修改CITY_NAME参数为你想要的城市采集

  运行主程序采集数据

  在项目文件夹中找到main.py并运行,愉快的获取数据并保存到data.csv。

  项目下载地址

  链接:密码​​:e7dz

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线