import requests
from selenium import webdriver
from lxml import etree
import time class DiffSpider: def __init__(self):
self.baseurl = 'https://www.nst.com.my/actionline'
# self.baseurl = 'https://v.youku.com/v_show/id_XNDE4MzQzOTA2NA==.html'
self.options = webdriver.ChromeOptions()
# self.options.add_argument('--headless')
# self.options.add_experimental_option('excludeSwitches', ['enable-automation'])
self.driver = webdriver.Chrome(options=self.options) self.driver.maximize_window()
self.headers ={'User-Agent':"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50",
'Accept-Language':'zh-CN,zh;q=0.9',
} def gethtml(self):
self.driver.get(self.baseurl)
# self.driver.get(self.baseurl)
time.sleep(2) chrome_html = self.driver.page_source
print(chrome_html)
self.writeto(chrome_html) def writeto(self, chrome_html):
with open('chrome_sourse.html','w', encoding='utf-8')as f:
f.write(chrome_html) if __name__ == '__main__':
spider = DiffSpider()
spider.gethtml()

拦截

from mitmproxy import ctx

def response(flow):
if '/www.nst.com.my/actionline' not in flow.request.url :
return # for webdriver_key in ['webdriver', '__driver_evaluate', '__webdriver_evaluate', '__selenium_evaluate',
# '__fxdriver_evaluate', '__driver_unwrapped', '__webdriver_unwrapped', '__selenium_unwrapped',
# '__fxdriver_unwrapped', '_Selenium_IDE_Recorder', '_selenium', 'calledSelenium',
# '_WEBDRIVER_ELEM_CACHE', 'ChromeDriverw', 'driver-evaluate', 'webdriver-evaluate',
# 'selenium-evaluate', 'webdriverCommand', 'webdriver-evaluate-response', '__webdriverFunc',
# '__webdriver_script_fn', '__$webdriverAsyncExecutor', '__lastWatirAlert',
# '__lastWatirConfirm', '__lastWatirPrompt', '$chrome_asyncScriptInfo',
# '$cdc_asdjflasutopfhvcZLmcfl_']:
# ctx.log.info('Remove "{}" from {}.'.format(webdriver_key, flow.request.url))
# flow.response.text = flow.response.text.replace('"{}"'.format(webdriver_key), '"NO-SUCH-ATTR"') flow.response.text = flow.response.text.replace('k60.L70(+"49")','false')
flow.response.text = flow.response.text.replace('k60.L70(+"232")', 'user-agent')
flow.response.text = flow.response.text.replace('k60.X70(+"489")', '{ "runtime": {}}')
flow.response.text = flow.response.text.replace('k60.X70("235" | 0)', '["zh-CN", "zh"]') flow.response.text = flow.response.text.replace('k60.L70(28)', 'false')
flow.response.text = flow.response.text.replace('k60.L70("462" - 0)', 'Google Inc')
flow.response.text = flow.response.text.replace('U1[k60.L70("303" | 0)]', '100')
flow.response.text = flow.response.text.replace('U1[k60.X70("7" * 1)]', '40') 原文链接:https://blog.csdn.net/qq_24137739/article/details/93631569

mitmproxy进行拦截的更多相关文章

  1. Android 抓包,监控流量工具之 mitmproxy

    转:http://greenrobot.me/devpost/how-to-debug-android-http-get-started/ mitmproxy实践教程之调试 Android 上 HTT ...

  2. mitmproxy

    通过脚本定制化实现篡改request或者response mitmproxy 顾名思义中间人代理[man-in-the-middle proxy],和fiddler.Charles等工具类似,通过代理 ...

  3. [转]mitmproxy套件使用攻略及定制化开发

    mitmproxy是一款支持HTTP(S)的中间人代理工具.不同于Fiddler2,burpsuite等类似功能工具,mitmproxy可在终端下运行.mitmproxy使用Python开发,是辅助w ...

  4. 初步认识mitmproxy(一)

    在windows机器上,经常用的最多的是fiddler工具,很强大,图形化界面,使用方便.简单:在mac上,Charles 类似fiddler工具,同样是易于操作的图形化界面,同样都是通过代理的方式实 ...

  5. mitmproxy的使用

    一.介绍 中间人代理可以理解成和中间件差不多 mitmproxy工程工具包,主要包含了3个组件 mitmproxy:拦截的http(s)记录控制台显示 [window不支持] mitmdump:命令行 ...

  6. 从零开始学mitmproxy抓包工具

    Man In The Middle mitm是Man In The Middle的首字母缩写,意思是位于中间的人,表明mitmproxy是一个代理,可以拦截请求,实现网络抓包.知名的网络抓包工具有Fi ...

  7. Python3自定义http/https请求拦截mitmproxy脚本

    [本文出自天外归云的博客园] 脚本内容 代码如下: from mitmproxy import http, ctx from multiprocessing import Lock class Fil ...

  8. [转]使用 mitmproxy + python 做拦截代理

    使用 mitmproxy + python 做拦截代理   本文是一个较为完整的 mitmproxy 教程,侧重于介绍如何开发拦截脚本,帮助读者能够快速得到一个自定义的代理工具. 本文假设读者有基本的 ...

  9. Mitmproxy介绍及Python拦截代理

    使用 mitmproxy + python 做拦截代理 转自:https://blog.wolfogre.com/posts/usage-of-mitmproxy/   本文是一个较为完整的 mitm ...

随机推荐

  1. Java RMI学习

    网上资料: Java RMI Tutorial Dynamic code downloading using RMI RPC-维基:Remote procedure call implementing ...

  2. org.apache.shiro.session.UnknownSessionException: There is no session with id [xxxx]的解决方案

    org.apache.shiro.session.UnknownSessionException: There is no session with id [xxxx]的解决方案 背景描述 Sprin ...

  3. systemd_journal_no_entries问题解决

    问题: #journalctl Journal file /var/log/journal/410/system@0.journal~ uses an unsupported feature, ign ...

  4. IAR使用ST-Link下载仿真

    修改Debugger->Setup->Driver 选择ST-LINK 修改 ST-LINK ->Interface选择SWD,CPU clock配置单片机CPU系统时钟. 修改De ...

  5. WebService接口学习【1】

    工具: 1.Eclipse(or)IDEA编辑器 2.SoapUI测试工具 1.wsdl文件标签体的约束: 一:namespace:相当于文件的id 二:targetNamespace属性:用来指定s ...

  6. MySQL JOIN原理(转)

    先看一下实验的两张表: 表comments,总行数28856 表comments_for,总行数57,comments_id是有索引的,ID列为主键. 以上两张表是我们测试的基础,然后看一下索引,co ...

  7. Locust 教程

    写在 Locust 教程开始的前面 本文参考了: Locust 教程 : https://www.axihe.com/tools/locust/home.html : locust 的官方 Githu ...

  8. Redis的缓存穿透问题和雪崩问题?

    缓存穿透:就是访问redis中一个不存在的key的时候,会直接穿过缓存,去数据库中进行查询. 如果是黑客,进行恶意攻击的时候,每次都请求超过2000个/秒的时候,这个时候mysql基本上就挂了. 解决 ...

  9. linux第三天

    一.用户的类型   1.root管理员:所有权限(r w x)   2.文件拥有者(u):谁创建谁拥有   3.组 (g):用户组   4.其它用户(o):不属于用户组,也不是文件的创建者,不是管理员 ...

  10. 第142题:环形链表II

    一. 问题描述 给定一个链表,返回链表开始入环的第一个节点. 如果链表无环,则返回 null. 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始). 如果 ...