爬虫攻守道 - 猿人学第一题 - 机票价格

2024-01-28 02:40

本文主要是介绍爬虫攻守道 - 猿人学第一题 - 机票价格,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

网上的教程,讲的什么解混淆,找加密函数,都是故弄玄虚,误人子弟。

第1步:过掉无限Debugger

这个是最基本的,只需要在 debugger 处单击右键 Never Stop here,然后继续即可

第2步:找到请求

这个还是非常明显的。在Payload 部分可以看到有个 m 参数。

 第3步:找到发起请求的地方

切换到 Initiator ,查看请求栈。定位到 request 处

在request 文件中打上断点,可以看到第1个断点是获取时间戳然后做些加减运算,得到1个值。在第2个断点处,将第1给断点处得到的值,调用oo0O0 函数,就得到请求 paylad 的m参数的前半部分。

第3个断点就是把 第1个和第2个断点处得到的值 做个拼接,赋值给 m,

所以接下来的关键,就是找到 oo0O0 函数。 

单步调试,代码就会来到 https://match.yuanrenxue.cn/match/1.html

这里好像网站做了限制,格式化不生效,没关系可以复制代码到 Pycharm,保存为 html 文件,然后格式化,找到我们要的函数,复制粘贴到 新的 js 文件。

 无脑执行这个 js 文件,他会相继提示你 window 没有定义,window.a 没有定义,document 没有定义,window.c 没有定义,但是没有关系,全局定义一个 window,剩下的从 1.html 里找补就行,加起来也就处理 for 循环里的1行代码而已。

再次无脑执行,没有报错。就可以补业务逻辑了。其实就是把断点处,先后得到3个值的代码补起来就好。测试一把,完美得到 m

第4步:Python实现

# !/usr/bin/env python3
# _*_ coding:utf-8 _*_
"""
@File               : match_01.py
@Project            : S044_YuanRenXue
@CreateTime         : 2023/4/8 17:14
@Author             : biaobro
@Software           : PyCharm
@Last Modify Time   : 2023/4/8 17:14 
@Version            : 1.0
@Description        : None
"""
import requests
import execjs
from urllib.parse import urlencodectx = execjs.compile(open('match_01.js', 'r', encoding='utf-8').read())total = 0
count = 0for i in range(1, 6):p_total = 0p_count = 0m = ctx.call('get_m')payload = {'page': i,'m': m,}url = "https://match.yuanrenxue.cn/api/match/1?" + urlencode(payload)# print(url)resp = requests.get(url)# print(resp.text)values = resp.json()['data']print(values)for value in values:p_total = p_total + value['value']p_count = p_count + len(values)print(p_total, p_count)total = total + p_totalcount = count + p_countprint(f'total:{total}, count:{count}, average:{total / count}')

 第5步:得到结果

第6步:总结

为什么说网上的教程故弄玄虚? 因为解混淆、找加密函数这些完全没有必要,前提是你清楚知道你的目标是什么。

这篇关于爬虫攻守道 - 猿人学第一题 - 机票价格的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/652230

相关文章

Python3 BeautifulSoup爬虫 POJ自动提交

POJ 提交代码采用Base64加密方式 import http.cookiejarimport loggingimport urllib.parseimport urllib.requestimport base64from bs4 import BeautifulSoupfrom submitcode import SubmitCodeclass SubmitPoj():de

Python:豆瓣电影商业数据分析-爬取全数据【附带爬虫豆瓣,数据处理过程,数据分析,可视化,以及完整PPT报告】

**爬取豆瓣电影信息,分析近年电影行业的发展情况** 本文是完整的数据分析展现,代码有完整版,包含豆瓣电影爬取的具体方式【附带爬虫豆瓣,数据处理过程,数据分析,可视化,以及完整PPT报告】   最近MBA在学习《商业数据分析》,大实训作业给了数据要进行数据分析,所以先拿豆瓣电影练练手,网络上爬取豆瓣电影TOP250较多,但对于豆瓣电影全数据的爬取教程很少,所以我自己做一版。 目

Golang 网络爬虫框架gocolly/colly(五)

gcocolly+goquery可以非常好地抓取HTML页面中的数据,但碰到页面是由Javascript动态生成时,用goquery就显得捉襟见肘了。解决方法有很多种: 一,最笨拙但有效的方法是字符串处理,go语言string底层对应字节数组,复制任何长度的字符串的开销都很低廉,搜索性能比较高; 二,利用正则表达式,要提取的数据往往有明显的特征,所以正则表达式写起来比较简单,不必非常严谨; 三,使

Golang网络爬虫框架gocolly/colly(四)

爬虫靠演技,表演得越像浏览器,抓取数据越容易,这是我多年爬虫经验的感悟。回顾下个人的爬虫经历,共分三个阶段:第一阶段,09年左右开始接触爬虫,那时由于项目需要,要访问各大国际社交网站,Facebook,myspace,filcker,youtube等等,国际上叫得上名字的社交网站都爬过,大部分网站提供restful api,有些功能没有api,就只能用http抓包工具分析协议,自己爬;国内的优酷、

Golang网络爬虫框架gocolly/colly(三)

熟悉了《Golang 网络爬虫框架gocolly/colly 一》和《Golang 网络爬虫框架gocolly/colly 二》之后就可以在网络上爬取大部分数据了。本文接下来将爬取中证指数有限公司提供的行业市盈率。(http://www.csindex.com.cn/zh-CN/downloads/industry-price-earnings-ratio) 定义数据结构体: type Zhj

014.Python爬虫系列_解析练习

我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈 入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈 虚 拟 环 境 搭 建 :👉👉 Python项目虚拟环境(超详细讲解) 👈👈 PyQt5 系 列 教 程:👉👉 Python GUI(PyQt5)文章合集 👈👈 Oracle数据库教程:👉👉 Oracle数据库文章合集 👈👈 优

urllib与requests爬虫简介

urllib与requests爬虫简介 – 潘登同学的爬虫笔记 文章目录 urllib与requests爬虫简介 -- 潘登同学的爬虫笔记第一个爬虫程序 urllib的基本使用Request对象的使用urllib发送get请求实战-喜马拉雅网站 urllib发送post请求 动态页面获取数据请求 SSL证书验证伪装自己的爬虫-请求头 urllib的底层原理伪装自己的爬虫-设置代理爬虫coo

半年高达552亿元,锁定云第一,中国电信天翼云紧追不舍

【科技明说 | 科技热点关注】 刚才我注意到中国电信公布2024年中期业绩,报告期内,中国电信实现营业收入为人民币2660亿元,同比增长2.8%,其中服务收入为人民币2462亿元,同比增长4.3%;净利润为人民币218亿元,同比增长8.2%。 其中亮点,2024年上半年,天翼云保持快速增长,收入达到了552亿元,同比增长20.4%,占服务收入比升至22.4%,市场头部地位进一步巩固。 为

Python 爬虫入门 - 基础数据采集

Python网络爬虫是一种强大且灵活的工具,用于从互联网上自动化地获取和处理数据。无论你是数据科学家、市场分析师,还是一个想要深入了解互联网数据的开发者,掌握网络爬虫技术都将为你打开一扇通向丰富数据资源的大门。 在本教程中,我们将从基本概念入手,逐步深入了解如何构建和优化网络爬虫,涵盖从发送请求、解析网页结构到保存数据的全过程,并讨论如何应对常见的反爬虫机制。通过本教程,你将能够构建有效的网络爬

0基础学习爬虫系列:网页内容爬取

1.背景 今天我们来实现,监控网站最新数据爬虫。 在信息爆炸的年代,能够有一个爬虫帮你,将你感兴趣的最新消息推送给你,能够帮你节约非常多时间,同时确保不会miss重要信息。 爬虫应用场景: 应用场景主要功能数据来源示例使用目的搜索引擎优化 (SEO)分析关键词密度、外部链接质量等网站元数据、链接提升网站在搜索引擎中的排名市场研究收集竞品信息、价格比较电商网站、行业报告制定更有效的市场策略舆情