import re # 字符串正则
import argparse # 控制台执行py传参,用于分割参数
import asyncio # py协程
from aiohttp import ClientSession # 利用ClientSession GET页面
from bs4 import BeautifulSoup # 提取html标签内容
import execjs # execjs库调用node底层执行js
# 我们最终要执行的是js中的intervalFunc函数,这个函数用于过滤掉不含intervalFunc的js部分
def findTargetJS(text):
url = []
if isinstance(text, str):
# find all of url in this string
url = url + re.findall('intervalFunc', text)
elif isinstance(text, list):
# find all of url in this list
for string in text:
url = url + re.findall('intervalFunc', str(string))
else:
raise ValueError("Invalid type!")
return url
# 利用execjs执行js,需要知道js里的函数名并将函数名传参给call()
# 如果不知道函数名,可以直接os.system("Node xxx.js")利用shell执行,不过这种前提是要把获取的信息放进js文件里
# 本函数可传入一段js文本(request_url),也可传入一堆js文本组成的list
# request_times是执行js的次数
def doJS(request_url, request_times):
# a
Python Get页面并执行js
最新推荐文章于 2023-10-13 10:55:13 发布