大众点评数据爬虫,破解反爬虫(学习使用)

大众点评反爬虫研究学习

研究前

  • 大众点评不同的网页处理的反爬是不一样的。

反爬虫的思想理论

实际操练

  • 打开网址

    首先打开大众点评的网址,点击这里。以这个为例子,记得先在网站上登录
    图 2-1
    ***************************************************************图1-1

    根据反爬虫思想理论,查看字体映射的背景样式

  • 请求3上的URL,记得在URL前加上https:

    https://s3plus.meituan.net/v1/mss_0a06a471f9514fc79c981b5466f56b91/svgtextcss/18c453dbeeb8a76baa380d4875d30f58.svg
    
  • 请求得到结果如下图
    在这里插入图片描述
    仔细观察可以发现里面有地址所需要的文字。我们检查网页源代码

    字体“路”对应的坐标,如图1-1中的4.(-154.0px -171.0px;),解的时候要把负号去掉,也就是说 :路(154,171)。
    根据字体映射的思想理论:

    在这里插入图片描述

    至此,就可以解出文字的位置信息。
    那么怎么得出那么多的字体映射 background-image呢?

  • 查看网页源代码的时候,发现了一个css样式,里面包含了所有的svg :backgroud-image
    在这里插入图片描述

    首先先使用加载 //3plus…的css文件,可以得到一个很全的css位置样式。记得在URL前面加上 https:
    接下来 Ctrl +F 键输入background-image
    在这里插入图片描述

    发现有三个svg,就是bacground-image url括号里面的连接,我们分别加载它,记得加上https:

    在这里插入图片描述
    1-第一个

    https://s3plus.meituan.net/v1/mss_0a06a471f9514fc79c981b5466f56b91/svgtextcss/894b2de6db675ff13bf99df4e824e029.svg
    

    加载第一个得到,如下图所示,可以猜测是评论方面的.svg

    在这里插入图片描述

    结果发现和评论上的svg是一样的,如下图
    在这里插入图片描述

    第二个

    https://s3plus.meituan.net/v1/mss_0a06a471f9514fc79c981b5466f56b91/svgtextcss/18c453dbeeb8a76baa380d4875d30f58.svg
    

    加载第二个
    在这里插入图片描述

    推测是和地址一样的。结果也是这样。现在可以发现一个东西,地址和评论对应的加密是不一样的。
    在这里插入图片描述

    第三个

    https://s3plus.meituan.net/v1/mss_0a06a471f9514fc79c981b5466f56b91/svgtextcss/a9ca1463919b05739b97df87c6ae0b74.svg
    

    加载之后得到数字,同理应该是和电话一样的
    在这里插入图片描述


至此可得结论:电话的加密映射是和评论的加密方式是一样的。而对于这样的字体映射的解决方法也是类似

在这里插入图片描述

得到于 的字体大小为14,对应的坐标为:于(560,1668),负号去掉。打开字体对应的svg,如下图
在这里插入图片描述

所以剩下的就可以针对映射了

字体大小为14,有些的为12,这个需要注意一下
在这里插入图片描述

svg 的连接不是固定的,会变,有时第一个 svg 连接是评论的,第二个svg连接是电话的,第三个svg连接是地址的。所以我们需要根据图1-1上的第6点,class的名称来判断 那个是地址的svg,那个是电话的svg,那个是地址svg。
因为css样式上有

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这三个是不是很熟悉,正是对应的svg
评论的 class 段落
在这里插入图片描述
地址的 class 段落
在这里插入图片描述
电话的 class 段落
在这里插入图片描述
至此,写代码连接起来就好了

部分代码如下

在这里插入图片描述
在这里插入图片描述
成功截图:
在这里插入图片描述
在这里插入图片描述

参考博文连接为:https://blog.csdn.net/weixin_39190382/article/details/89199619

Python爬虫是一种自动化抓取网页数据的程序,使用Python语言可以编写出各种功能强大的爬虫。在编写爬虫程序时,通常会用到如`requests`库进行网络请求,`BeautifulSoup`或`lxml`等库来解析HTML页面。 以下是一个简单的Python爬虫示例,用于爬取大众点评的某一页数据。请注意,由于网站的结构可能随时更改,以下代码可能需要根据实际情况进行调整。 ```python import requests from bs4 import BeautifulSoup # 目标URL,这里需要替换成实际要爬取的大众点评页面地址 url = 'https://www.dianping.com/某城市/某分类' # 发送HTTP请求 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'} response = requests.get(url, headers=headers) # 检查请求是否成功 if response.status_code == 200: # 使用BeautifulSoup解析HTML soup = BeautifulSoup(response.text, 'lxml') # 提取信息,这里以提取店铺名称和评分为例 list = [] for item in soup.find_all('div', class_='店铺信息类名'): # 需要根据实际的HTML结构替换'店铺信息类名' name = item.find('a', class_='店铺名称类名').text # 替换'店铺名称类名' rating = item.find('span', class_='评分类名').text # 替换'评分类名' list.append({'name': name, 'rating': rating}) # 打印提取的信息 for store in list: print(store) else: print("请求失败,状态码:", response.status_code) ``` 在实际使用中,大众点评网站可能有爬虫措施,如动态加载内容、验证码、IP限制等。这时可能需要使用更高级的技术如Selenium进行模拟浏览器操作,或者设置合适的请求间隔、使用代理等方法。 使用爬虫时,请遵守相关法律法规和网站的使用协议,不要进行任何侵犯隐私或违法的行为。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值