zl程序教程

您现在的位置是:首页 >  后端

当前栏目

使用selenium 运行js 代码 并 使用chrome copy jspath 查找想要的html 对象

JSChromeHTML对象代码 运行 查找 selenium
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博客🙉
  • 📢停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活✨