import pyautogui
from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from selenium.webdriver import ActionChains
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import re
import time
import random
import os
try:
# todo Request target
browser.get(target_url)
print(browser.title)
# todo processing each page
each_page()
except TimeoutException:
# return search_context()
return print("resquest error")
each_page() 具体干活的方法
[Python] 纯文本查看复制代码
#processing each page
for i in range(1, 28):
#child page
css = ("#pins > li:nth-child(%s) > a" % str(i))
try:
target_label = wait.until(
EC.presence_of_element_located(
(By.CSS_SELECTOR, css)))
except Exception:
print("error occurred It could be advertising")
continue
# in to child page
target_label.click()
# into new windows
switch_to_new_window()
#last page number
last_page = wait.until(
EC.presence_of_element_located(
(By.CSS_SELECTOR, 'body > div.main > div.content > div.pagenavi > a:nth-child(7)')))
# todo click last pages
last_page.click()
# re match get page number
page_total_number = page_number()
# into new windows
switch_to_new_window()
#save path
root = "d:\\com.mzitu\\imgae" + str(i) + "\\"
if os.makedirs(root):
print(root + "File Dir Created Finish!")
else:
print("File Dir Exist!!")
#detail page processing
for x in range(page_total_number):
click_each_detail_page = wait.until(
EC.presence_of_element_located(
(By.CSS_SELECTOR, 'body > div.main > div.content > div.pagenavi > a:nth-child(1) > span')))
click_each_detail_page.click()
time.sleep(random.randint(0, 2))
# todo right click on the image
jpg = wait.until(EC.element_to_be_clickable((By.TAG_NAME, 'img')))
actions = ActionChains(browser)
actions.context_click(jpg)
actions.perform()
# #todo input v saved
pyautogui.keyDown("v")
time.sleep(1)
pyautogui.typewrite(root + str(x))
pyautogui.keyDown("enter")
pyautogui.keyUp("enter")
print("Is downloading...." + browser.title)
time.sleep(0.5)
pyautogui.keyDown("enter")
first_windows()
first_windows() 切换到第一个窗口
[Python] 纯文本查看复制代码
windows = browser.window_handles
browser.switch_to.window(windows[0])