使用selenium 运行js 代码 并 使用chrome copy jspath 查找想要的html 对象
2023-09-14 09:14:34 时间
![]() | 🍿*★,°*:.☆欢迎您/$:*.°★* 🍿 | ![]() |
目录
背景
正文
总结
背景描述
![]() | 为了使用selenium 运行js 代码 并 使用chrome copy jspath 查找想要的html 对象 | ![]() |
正文
首先使用chrom F12 选中需要的html copy jspath 得到 代码 在console 中调试通过后
使用selenium 执行js 代码后获得相应的操作对象等,得到想要的url
当然得到的数据未必是想要的结果,还是要分析后进行一定的处理得到
# pip install
# webdriver-manager
# selenium
# pyperclip
# pywinauto
# http://datasite.jumpw.com/data/info-heros 此网址F12 console 执行 下面代码得到 如下网址
# var doc_ob=document.querySelector("#hero_box")
# var num =doc_ob.childElementCount
#
# for (let i = 0; i < num; i++) {
# console.log(doc_ob.children[i].children[0].getAttribute("href"))
# }
#
list_url="""/data/info-defail?id=42
/data/info-defail?id=53
/data/info-defail?id=17
/data/info-defail?id=20
/data/info-defail?id=29
/data/info-defail?id=30
/data/info-defail?id=32
/data/info-defail?id=33
/data/info-defail?id=34
/data/info-defail?id=35
/data/info-defail?id=37
/data/info-defail?id=39
/data/info-defail?id=40
/data/info-defail?id=41
/data/info-defail?id=45
/data/info-defail?id=46
/data/info-defail?id=47
/data/info-defail?id=50
/data/info-defail?id=54
/data/info-defail?id=55
/data/info-defail?id=63
/data/info-defail?id=78
/data/info-defail?id=79
/data/info-defail?id=80
/data/info-defail?id=81
/data/info-defail?id=82
/data/info-defail?id=83
/data/info-defail?id=84
/data/info-defail?id=86
/data/info-defail?id=91
/data/info-defail?id=92
/data/info-defail?id=96
/data/info-defail?id=100
/data/info-defail?id=101
/data/info-defail?id=104
/data/info-defail?id=105
/data/info-defail?id=107
/data/info-defail?id=108
/data/info-defail?id=109
/data/info-defail?id=110
/data/info-defail?id=113
/data/info-defail?id=115
/data/info-defail?id=117
/data/info-defail?id=118
/data/info-defail?id=119
/data/info-defail?id=120
/data/info-defail?id=121
/data/info-defail?id=126
/data/info-defail?id=134
/data/info-defail?id=135
/data/info-defail?id=136
/data/info-defail?id=137
/data/info-defail?id=138
/data/info-defail?id=140
/data/info-defail?id=142
/data/info-defail?id=143
/data/info-defail?id=144
/data/info-defail?id=145
/data/info-defail?id=146
/data/info-defail?id=147
/data/info-defail?id=148
/data/info-defail?id=149
/data/info-defail?id=150
/data/info-defail?id=151
/data/info-defail?id=152
/data/info-defail?id=153
/data/info-defail?id=154
/data/info-defail?id=155
/data/info-defail?id=156
/data/info-defail?id=157
/data/info-defail?id=158
/data/info-defail?id=160
/data/info-defail?id=161
/data/info-defail?id=162
/data/info-defail?id=163
/data/info-defail?id=164
/data/info-defail?id=165
/data/info-defail?id=166
/data/info-defail?id=168
/data/info-defail?id=169
/data/info-defail?id=170
/data/info-defail?id=171
/data/info-defail?id=172
/data/info-defail?id=174
/data/info-defail?id=180
/data/info-defail?id=181
/data/info-defail?id=183
/data/info-defail?id=184
/data/info-defail?id=185
/data/info-defail?id=186
/data/info-defail?id=188
/data/info-defail?id=189
/data/info-defail?id=190
/data/info-defail?id=191
/data/info-defail?id=192
/data/info-defail?id=193
/data/info-defail?id=194
/data/info-defail?id=195
/data/info-defail?id=196
/data/info-defail?id=197
/data/info-defail?id=198
/data/info-defail?id=199
/data/info-defail?id=201
/data/info-defail?id=207
/data/info-defail?id=208
/data/info-defail?id=210
/data/info-defail?id=211
/data/info-defail?id=212
/data/info-defail?id=213
/data/info-defail?id=214
/data/info-defail?id=215
/data/info-defail?id=216
/data/info-defail?id=217
/data/info-defail?id=218
/data/info-defail?id=223
/data/info-defail?id=224
/data/info-defail?id=225
/data/info-defail?id=229
/data/info-defail?id=233
/data/info-defail?id=234
/data/info-defail?id=237
/data/info-defail?id=238
/data/info-defail?id=239
/data/info-defail?id=240
/data/info-defail?id=241
/data/info-defail?id=244
/data/info-defail?id=245
/data/info-defail?id=247
/data/info-defail?id=251
/data/info-defail?id=260
/data/info-defail?id=262
/data/info-defail?id=263
/data/info-defail?id=264
/data/info-defail?id=265
/data/info-defail?id=266
/data/info-defail?id=267
/data/info-defail?id=268
/data/info-defail?id=270
/data/info-defail?id=271
/data/info-defail?id=272
/data/info-defail?id=273
/data/info-defail?id=274
/data/info-defail?id=275
/data/info-defail?id=278
/data/info-defail?id=291
/data/info-defail?id=279
/data/info-defail?id=280
/data/info-defail?id=281
/data/info-defail?id=282
/data/info-defail?id=283
/data/info-defail?id=284
/data/info-defail?id=285
/data/info-defail?id=286
/data/info-defail?id=287
/data/info-defail?id=288
/data/info-defail?id=289
/data/info-defail?id=290
/data/info-defail?id=292
/data/info-defail?id=296
"""
head_url="http://datasite.jumpw.com"
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.options import Options
# 导入keys类包
# import pyperclip
# from pywinauto.keyboard import send_keys
# 合成urls
url_list=[head_url+i for i in list_url.split()]
# 获取链接的js代码
js_code="""
func (){
var doc_ob = document.querySelector("body > div.index-owl > div.owl-nav.owl-banner > div");
var num =doc_ob.childElementCount;
var url_list=[];
for (let i = 0; i < num; i++) {
url_list.push(doc_ob.children[i].children[0].children[0].getAttribute("src"))
};
return url_list;
}
"""
# 设置打开浏览器
options = Options()
options.add_argument("--start-maximized")
options.add_experimental_option(
'excludeSwitches', ['enable-logging', 'enable-automation'])
options.add_argument("profile-directory={profile}")
options.add_argument("--incognito")
chrome_dir=r"C:/Users/Administrator/AppData/Local/Google Chrome/Chromebin/chrome.exe"
# chrome = Application(backend='uia')
options.binary_location = chrome_dir
browser_driver = webdriver.Chrome(ChromeDriverManager().install(), options=options)
# pyperclip.copy(js_code)
# from pywinauto import Application
# from pywinauto import mouse
# import pyautogui
# import time
# import pyperclip
url_list_a=[]
for i in url_list:
# html=chrome.start(chrome_dir + ' --force-renderer-accessibility --incognito --start-maximized ' + i, timeout=5)
browser_driver.get(i)
num=browser_driver.execute_script("""return document.querySelector("body > div.index-owl > div.owl-nav.owl-banner > div").childElementCount""")
for i in range(int(num)):
url_one=browser_driver.execute_script("""return document.querySelector("body > div.index-owl > div.owl-nav.owl-banner > div").children[{}].children[0].children[0].getAttribute("src")""".format(i))
url_list_a.append(url_one)
# browser_driver.close()
print(url_one)
with open("result_url.text","a",encoding="utf-8") as f:
f.writelines(url_list_a)
# 将得到的结果small.png 替换为mid.jpg 复制一份 中和 将 _small.png 替换为 .jpg一份
# 将所有链接复制到迅雷中下载
# 下载之后 使用opencv 拼接即可
下面是合成代码
import cv2
import os
name_list=os.listdir("20221003_2153")
name_1=[i for i in name_list if "_" not in i]
for i in name_1:
c=cv2.imread("20221003_2153/{}".format(i))
t=cv2.imread("20221003_2153/{}".format(i[:-4]+"_mid.jpg"))
s=int((c.shape[1]-t.shape[1])//2)
c[:,s:s+t.shape[1],:]=t
cv2.imwrite("20221003_2153/x_{}".format(i[:-4]+"_mid.jpg"),c)
os.remove("20221003_2153/{}".format(i))
os.remove("20221003_2153/{}".format(i[:-4] + "_mid.jpg"))
# if c.shape[1]-t.shape[1]==640:
# print()
# else:
# print("dddddddddd")
总结
不是所有的任务都需要后期的
- 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
- 📢本文由东方佑原创,首发于 CSDN博客🙉
- 📢停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活✨
相关文章
- js书写原生ajax,JS 原生ajax写法
- html如何只刷新页面指定,js控制页面刷新 JS刷新当前页面的几种方法总结
- js与jQuery的区别以及jQuery选择器和方法的使用
- 【说站】js构造函数的使用注意
- JS获取当前年份_js获取当前时间年月日
- 原生 JS 实现 HTML 转 Markdown,以及其实现逻辑(html2md.js 或 html2markdown.js)
- js实现:输入密码才能打开网页。js实现密码保护的网页。
- clipboard.js:最轻便的复制页面内容到剪切板的JS
- Vue.js安装教程(图解)
- 使用JS实现Redis数据读取(js读取redis)
- 使用JS技术实现Oracle数据库链接(js 链接 oracle)
- 使用JS操作Oracle数据库探索潜在可能性(js和oracle数据库)
- js正则使用方法
- 兼容IE、FireFox、Chrome等浏览器的xml处理函数js代码
- Chrome内核下由ashx输出的js代码不起作用的解决方法
- 超简单JS二级、多级联动的简单实例
- js实现局部页面打印预览原理及示例代码
- 完美兼容IE,chrome,ff的设为首页、加入收藏及保存到桌面js代码