行业解决方案:美团商家信息采集神器!Python采集所有商家信息
优采云 发布时间: 2020-10-29 11:01美团商务信息采集神器! Python 采集所有业务信息
在github上找到一个美团项目,您可以获取指定城市的商业信息,每分钟都有数百种商业信息的数据在您的手,这些信息包括商店名称,地理位置,等级,销售,电话(这就是重点)。
距我更新已经很久了。今天,我写了文章,并附上了这个有价值的项目下载地址。
本文是您自己编写的xpath注释。如果您不想阅读它,可以转到文章底部代码下载地址。
很遗憾该项目是草率编写的。实际上,我不想使用框架,但是花了一天的时间将此项目更改为可以运行的代码。在更改过程中,我再次熟悉了scrapy。决定学习xpath,后来又开始草率地编写一些爬虫。
Python学习交流小组:1004391443,这是python学习者的聚会场所,这里有专家回答问题和共享资源!编辑器还准备了python学习资料。欢迎那些想要学习python编程或改变职业的人,大学生以及那些希望提高工作能力的人加入学习。
除了CSS之外,scrapy的选择器比xpath更好。现在您需要练习使用xpath。
Xpath简介
通常来说,使用id,name,class和其他属性来定位节点可以解决大多数解析需求,但是有时在以下情况下使用Xpath更方便:
没有诸如id,名称,类之类的标签属性,或者文本功能不明显。标签的嵌套级别太复杂。
Xpath是XML Path的简介。基于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()]
三、使用属性
为了使定位更准确,类似于使用索引,我们需要增加信息量,因此也可以使用属性。 @符号是属性符号
#定位所有包含name属性的input节点//input[@name]#定位含有属性的所有的input节点//input[@*]#定位所有value=2的input节点//input[@value='2']#使用多个属性定位//input[@value='2'][@id='3']或者//input[@value='2' and @id='3']
四、常用功能
除索引和属性外,Xpath还可以使用便捷的功能来提高定位的准确性。以下是一些常用功能:
函数的含义contains(s1,s2)如果s1收录s2,则返回true;否则,返回falsetext()以获取节点中的文本内容starts-with()与实际位置的字符串匹配
应用推广#定位href属性中包含“promote.html”的所有a节点//a[contains(@href,'promote.html')]#元素内的文本为“应用推广”的所有a节点//a[text()='应用推广']#href属性值是以“/ads”开头的所有a节点//a[starts-with(@href,'/ads')]
五、Xpath轴
这部分类似于BeautifulSoup中的同级,父级和子级方法。有时,为了实现定位,有必要进行环形交叉路口,然后七个姨妈和八个姨妈的远亲走来走去,然后他们彼此认识,并且位置就在那里。
轴名称表示祖先选择当前节点的所有祖先(父亲,祖父等)。祖先或自身选择当前节点的所有祖先(父亲,祖父等),而当前节点自己的属性选择全部当前节点的属性子节点选择当前节点节点的所有后代节点选择当前节点的所有后代节点(子节点,孙子节点等),后代或自身选择当前节点的所有后代节点(子节点,孙子节点等),以及当前节点自身的后继节点选择当前节点末尾之后的节点。所有节点的父节点选择当前节点的父节点。兄弟姐妹选择相同级别的所有节点,然后当前节点自身选择当前节点。
六、美团商家信息
在代码中,我提供了一个高科技的api_key,但是如果您过多使用它,则实际上将无法使用它。我建议你自己申请。
#在高德注册,进入控制台http://lbs.amap.com/
广告中几乎没有人知道,对于50岁的阿姨来说,一勺灵芝孢子粉也会像这样改变
这是几十秒内采集中郑州市的数据。
提示:
修改高德api_key
在项目中找到设置,并将GAODEAPIKEY参数修改为您的应用程序编号的api_key。
更改城市
在项目中找到设置,然后将CITY_NAME参数修改为所需的城市采集
运行主程序采集数据
在项目文件夹中找到main.py并运行它以愉快地获取数据并将其保存到data.csv。