关于execjs回调python的信息

本文目录一览:

请教各位,python编写爬虫,返回http error 521怎么解决

原博主用的是PyV8执行JS代码,我换了PyExecJS

import execjs

import re

import requests

url = “”

HERDERS = {

“Host”: “”,

‘User-Agent’: ‘Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36’,

}

def executejs(html):

# 提取其中的JS加密函数

js_string = ”.join(re.findall(r'(function .*?)/script’,html))

# 提取其中执行JS函数的参数

js_func_arg = re.findall(r’setTimeout\(\”\D+\((\d+)\)\”‘, html)[0]

js_func_name = re.findall(r’function (\w+)’,js_string)[0]

# 修改JS函数,使其返回Cookie内容

js_string = js_string.replace(‘eval(“qo=eval;qo(po);”)’, ‘return po’)

func = execjs.compile(js_string)

return func.call(js_func_name,js_func_arg)

def parse_cookie(string):

string = string.replace(“document.cookie='”, “”)

clearance = string.split(‘;’)[0]

return {clearance.split(‘=’)[0]: clearance.split(‘=’)[1]}

# 第一次访问获取动态加密的JS

first_html = requests.get(url=url,headers=HERDERS).content.decode(‘utf-8’)

# 执行JS获取Cookie

cookie_str = executejs(first_html)

# 将Cookie转换为字典格式

cookie = parse_cookie(cookie_str)

print(‘cookies = ‘,cookie)

# 带上cookies参数,再次请求

response = requests.get(url=url,headers=HERDERS,cookies=cookie)

print(response.status_code)

python中如何调用js文件中的方法呢

1、打开pycharm开发工具,点击File菜单,选择Settings…,进行第三方模块安装;输入selenium,点击Install Package。

2、接着在python项目的指定文件夹下,鼠标右键新建python文件,输入文件名并点击Python file。

3、打开新建的文件,依次导入selenium、webdriver和time。

4、调用webdriver模块中的Chrome(),使用get()获取对应网址的内容。

5、调用find_element_by_id()获取对应页面元素,然后调用按钮点击事件。

6、修改get()方法中的请求路径,然后保存代码并运行文件,查看运行结果。

python execjs怎么用

可以在webstorm中copy这个encode函数带上自己的用户名运行,返回的结果就是su的值,这个值在之后进行post提交的时候也会用到。

如果对加密有一定经验的同学可能一眼就会看出这个是base64编码,python中有个base64模块可以干这个事情。

linux上安装了pyv8 执行execjs的时候想用pyv8的环境去执行,但是 运行的时候 说找不到js的运行环境怎么办

pyv8 的作用是在python中执行js代码,然后可以使用js里的变量等内容。python取得javascript里面的值、javascript取得python里面的值、python和javascript里面的函数交互

mac下的安装:pip install -e git://github.com/brokenseal/PyV8-OS-X#egg=pyv8

安装后有两个文件:一个PyV8.py 另一个_PyV8.so

下面示例是执行js文件

from pyv8 import PyV8

ctxt = PyV8.JSContext()

ctxt.enter()

with open(‘/usr/graph.js’) as f:

jsdata = f.read() # print jsdata

print ctxt.eval(jsdata)

下面是执行一段代码

import PyV8

ctxt = PyV8.JSContext()

ctxt.enter()

func = ctxt.eval(“””

(function(){

function hello(){

return “Hello world.”;

}

return hello();

})”””)print func()

则在python环境中打印出js执行的结果:Hello world.

更多信息可参考《Linux就该这么学》

怎么样python爬虫进行此网站爬取

是加密的,解密方法在JS里面可以弄出来。

首先要AES解密,可以【Python:import Crypto.Cipher.AES】包,解密mode是CFB,seed是”userId:”+uid+”:seed”的SHA256值,解密的key是seed[0:24],iv是seed[len(seed)-16:]。

如果没有登录,uid就是用的”anyone”,这时候的seed是”61581AF471B166682A37EFE6DD40FE4700EE337FEEEF65E2C8F203FCA312AAAB”,也就是key为”61581AF471B166682A37EFE6″,iv为”C8F203FCA312AAAB”。

解密后文件是压缩过的,解压即可得到一个JSON。这部分解压我没仔细看他的算法,好像是gzip,直接用【Python:import gzip】解压有点出错,可能没用对或者不是这个算法,你在研究一下。第二种投机的方法就是,可以通过【Python:import execjs】直接调用他的pako.js文件的JS的inflate()函数来解压这块。JS代码混淆后看起来是非常难懂的,使用这种做法可以不用太看懂加密的算法,效率当然写Python实现这个解密算法低1点咯。

最后的JSON再用【Python:import demjson】解析,text的value就是文档。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/283027.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-22 08:06
下一篇 2024-12-22 08:06

相关推荐

  • Python中引入上一级目录中函数

    Python中经常需要调用其他文件夹中的模块或函数,其中一个常见的操作是引入上一级目录中的函数。在此,我们将从多个角度详细解释如何在Python中引入上一级目录的函数。 一、加入环…

    编程 2025-04-29
  • 如何查看Anaconda中Python路径

    对Anaconda中Python路径即conda环境的查看进行详细的阐述。 一、使用命令行查看 1、在Windows系统中,可以使用命令提示符(cmd)或者Anaconda Pro…

    编程 2025-04-29
  • Python周杰伦代码用法介绍

    本文将从多个方面对Python周杰伦代码进行详细的阐述。 一、代码介绍 from urllib.request import urlopen from bs4 import Bea…

    编程 2025-04-29
  • Python计算阳历日期对应周几

    本文介绍如何通过Python计算任意阳历日期对应周几。 一、获取日期 获取日期可以通过Python内置的模块datetime实现,示例代码如下: from datetime imp…

    编程 2025-04-29
  • Python列表中负数的个数

    Python列表是一个有序的集合,可以存储多个不同类型的元素。而负数是指小于0的整数。在Python列表中,我们想要找到负数的个数,可以通过以下几个方面进行实现。 一、使用循环遍历…

    编程 2025-04-29
  • Python字典去重复工具

    使用Python语言编写字典去重复工具,可帮助用户快速去重复。 一、字典去重复工具的需求 在使用Python编写程序时,我们经常需要处理数据文件,其中包含了大量的重复数据。为了方便…

    编程 2025-04-29
  • Python清华镜像下载

    Python清华镜像是一个高质量的Python开发资源镜像站,提供了Python及其相关的开发工具、框架和文档的下载服务。本文将从以下几个方面对Python清华镜像下载进行详细的阐…

    编程 2025-04-29
  • 蝴蝶优化算法Python版

    蝴蝶优化算法是一种基于仿生学的优化算法,模仿自然界中的蝴蝶进行搜索。它可以应用于多个领域的优化问题,包括数学优化、工程问题、机器学习等。本文将从多个方面对蝴蝶优化算法Python版…

    编程 2025-04-29
  • python强行终止程序快捷键

    本文将从多个方面对python强行终止程序快捷键进行详细阐述,并提供相应代码示例。 一、Ctrl+C快捷键 Ctrl+C快捷键是在终端中经常用来强行终止运行的程序。当你在终端中运行…

    编程 2025-04-29
  • Python程序需要编译才能执行

    Python 被广泛应用于数据分析、人工智能、科学计算等领域,它的灵活性和简单易学的性质使得越来越多的人喜欢使用 Python 进行编程。然而,在 Python 中程序执行的方式不…

    编程 2025-04-29

发表回复

登录后才能评论