前言
大众点评是一款非常受大众喜爱的第三方的美食相关的点评网站
因此,该网站的数据也就非常具有价值,优惠,评价数量,好评度等数据也就非常受数据公司的欢迎。
今天就写一个大众点评评价的数据抓取:点击跳转到采集网址
页面解析
页面解析.png
从图中的红框可以看出,页面内容并不是页面返回的结果。
标签内容的class其实是对应的class文件里的设置,对应的css实例里有链接,这个链接就是指向对应svg映射的链接。
链接地址:http://s3plus.meituan.net/v1/mss_0a06a471f9514fc79c981b5466f56b91/svgtextcss/368aeaedc8cc4554b950aef63ff7daf4.svg
页面内容
svg链接页面内容.png
注意上面的对比图:
其中有个afu4l属性,这个属性是对应svg文字位置的背景图。可以自己动手修改参数值查看,对应位置汉字改变
image.png
思路实现
找到页面对应的css文件,解析处理内容
对svg链接做解析处理
import requests
import re
#对提取到的svg链接进行处理
def svg_handle(svg_url):
svg_req = requests.get(svg_url,verify=False)
#print(svg_req.status_code)
svg_req = svg_req.text
#该正则匹配的数字的svg
font = re.findall('" y="(\d+)">(\w+)',svg_req,re.M)
#匹配文字类
if not font:
font = []
#"textLength.*?(\w+)"
z = re.findall('">(\w+)', svg_req, re.M)
y = re.findall('id="\d+" d="\w+\s(\d+)\s\w+"', svg_req, re.M)
for a, b in zip(y, z):
font.append((int(a), b))
width = re.findall("font-size:(\d+)px", svg_req)[0]