selenium bổ sung

Chờ đợi nguyên tố thêm tái

selenium trung chờ đợi phương pháp

time.sleep()

  • Mạnh mẽ chờ đợi, bất luận nguyên tố hay không thêm tái ra tới, đều cần chờ

web.implicitly_wait()

  • Thiết trí sau toàn cục sử dụng, mặt sau nguyên tố cam chịu tuân thủ chờ đợi.
  • Nếu không thêm tái ra tới, sẽ chờ đợi một đoạn thời gian.
  • Nếu nguyên tố thêm tái ra tới, liền không cần chờ

WebDriverWait

  • Bộ phận sử dụng, đơn độc chờ một cái nguyên tố
  • Nếu xuất hiện, liền không cần chờ đợi
  • Nếu chờ đợi trong lúc không có xuất hiện, siêu lúc ấy báo sai.
fromseleniumimportwebdriver
fromselenium.webdriver.supportimportexpected_conditionsasEC
fromselenium.webdriver.common.byimportBy
fromselenium.webdriver.support.waitimportWebDriverWait
web=webdriver()
# chờ đợi 10 giây, 0.5 giây đi xem một lần
ele=WebDriverWait(web,10,0.5).until(
# chờ đợi xpath đường nhỏ hạ nguyên tố xuất hiện, một khi xuất hiện, kết thúc chờ đợi
EC.presence_of_element_located((By.XPATH,"/html/body/div[5]/div[2]/div[1]/div/div"))
)

Ví dụ thực tế 1

importbase64# hình ảnh chuyển thành byte mã xuyến, ở trên mạng truyền
importjson
importtime
fromselenium.webdriverimportActionChains
fromselenium.webdriver.supportimportexpected_conditionsasEC
importrequests
fromlxmlimportetree
fromselenium.webdriver.common.byimportBy
fromselenium.webdriver.support.waitimportWebDriverWait
fromseleniumimportwebdriver
# sách tranh nghiệm chứng mã loại
classVerifyCode():
def__init__(self,username="Username",password=' mật mã '):
self.username=username
self.password=password
# loại hình 18 phân biệt, chỗ hổng phân biệt ( yêu cầu 2 trương đồ một trương mục tiêu đồ một trương chỗ hổng đồ )
defverify_ chỗ hổng(self,img,img_back):
typeid=18
withopen(img,'rb')asf:
base64_front_data=base64.b64encode(f.read())
b64_front=base64_front_data.decode()
withopen(img_back,'rb')asf:
base64_bg_data=base64.b64encode(f.read())
b64_bg=base64_bg_data.decode()
data={"username":self.username,"password":self.password,"typeid":typeid,"image":b64_front,"imageback":b64_bg}
result=json.loads(requests.post("http://api.ttshitu /predict",json=data).text)
ifresult['success']:
returnresult["data"]["result"]
else:
returnresult["message"]
# đơn chỗ hổng phân biệt ( phản hồi X trục tọa độ chỉ cần 1 trương đồ )
defverify_ đơn chỗ hổng(self,img):
typeid=33
withopen(img,'rb')asf:
base64_front_data=base64.b64encode(f.read())
base64_img=base64_front_data.decode()
data={"username":self.username,"password":self.password,"typeid":typeid,"image":base64_img}
result=json.loads(requests.post("http://api.ttshitu /predict",json=data).text)
ifresult['success']:
returnresult["data"]["result"]
else:
returnresult["message"]
# 1 ~ 4 cái tọa độ
defverify_ điểm đánh(self,img):
typeid=27
withopen(img,'rb')asf:
base64_front_data=base64.b64encode(f.read())
base64_img=base64_front_data.decode()
data={"username":self.username,"password":self.password,"typeid":typeid,"image":base64_img}
result=json.loads(requests.post("http://api.ttshitu /predict",json=data).text)
ifresult['success']:
returnresult["data"]["result"]
else:
returnresult["message"]
# đăng nhập trang web
deflogin(username="xxxx",password="xxxx"):
# 1. Hoàn thành đăng nhập
login_url="https://login.zhipin /?ka=header-login"
web=webdriver.Chrome()
time.sleep(3)
web.get(login_url)
web.find_element_by_xpath('//*[@id= "wrap" ]/div[2]/div[1]/div[2]/div[1]/form/div[3]/span[2]/input').send_keys(username)
web.find_element_by_xpath('//*[@id= "wrap" ]/div[2]/div[1]/div[2]/div[1]/form/div[4]/span/input').send_keys(password)
web.find_element_by_xpath('//*[@id= "pwdVerrifyCode" ]/div').click()
ele=WebDriverWait(web,10,0.5).until(
EC.presence_of_element_located((By.XPATH,"/html/body/div[5]/div[2]/div[1]/div/div"))
)
# đối tìm được xpath nguyên tố tiến hành chụp hình, cũng mệnh danh là
ele.screenshot("Hình ảnh nghiệm chứng.png")
# điểm đánh nguyên tố loại hình ảnh nghiệm chứng, ví dụ thực tế loại, dùng loại trung phương pháp
result=VerifyCode().verify_ điểm đánh("Hình ảnh nghiệm chứng.png")
points=result.split("|")
forpointinpoints:
ps=point.split(",")
x=int(ps[0])
y=int(ps[1])
# động tác liên
ActionChains(web).move_to_element_with_offset(ele,x,y).click().perform()
time.sleep(1)
web.find_element_by_xpath('/html/body/div[5]/div[2]/div[1]/div/div/div[3]/a/div').click()
time.sleep(2)
web.find_element_by_xpath('//*[@id= "wrap" ]/div[2]/div[1]/div[2]/div[1]/form/div[6]/button').click()
time.sleep(3)
# thu hoạch trang web nguyên mã
defget_page_source(url):
# đổ bộ trang web
login()
# thu hoạch cookies
web.get_cookies()
web.get(url)
# ẩn thức chờ đợi 20 giây trang web thượng xpath nguyên tố xuất hiện
ele=WebDriverWait(web,20).until(
EC.presence_of_element_located((By.XPATH,"//ul[@class='job-list-box']//span[@class='job-name']/a/text()"))
)
# xem xét thu hoạch nguyên mã, cũng viết nhập văn kiện ab.html trung
print(web.page_source)
i=True
withopen('ab.html','w',encoding='utf-8')asf:
ifi==True:
f.write(web.page_source)
i=False
returnweb.page_source
if__name__=='__main__':
web=webdriver.Chrome()
foriinrange(1,10):
url=f "https:// zhipin /c101010100/?query= Python &page={i}&ka=page-{i}"
print(url)
content=get_page_source(url)
tree=etree.HTML(content)
job_names=tree.xpath("//ul[@class='job-list-box']//span[@class='job-name']/a/text()")
print(job_names)
print(f "Đang ở trảo lấy đệ{i}Trang ")

Nhảy qua hoạt khối kiểm tra đo lường

Nghiệm chứng mã chi hoạt khối kiểm tra đo lường, nhảy qua trình duyệt kiểm tra đo lường thiết trí

# 88 phiên bản về sau có thể dùng
option=Options()
# option.add_experimental_option('excludeSwitches', ['enable-automation'])
option.add_argument('--disable-blink-features=AutomationControlled')
web=Chrome(options=option)
Bình luận
Tăng thêm bao lì xì

Thỉnh điền bao lì xì chúc phúc ngữ hoặc tiêu đề

Cái

Bao lì xì cái số nhỏ nhất vì 10 cái

Nguyên

Bao lì xì kim ngạch thấp nhất 5 nguyên

Trước mặt ngạch trống3.43Nguyên Đi trước nạp phí >
Cần chi trả:10.00Nguyên
Thành tựu một trăm triệu kỹ thuật người!
Lĩnh sau ngươi sẽ tự động trở thành bác chủ cùng bao lì xì chủ fans Quy tắc
hope_wisdom
Phát ra bao lì xì
Thật phóNguyên
Sử dụng ngạch trống chi trả
Điểm đánh một lần nữa thu hoạch
Quét mã chi trả
Tiền bao ngạch trống 0

Để khấu thuyết minh:

1. Ngạch trống là tiền bao nạp phí giả thuyết tiền, dựa theo 1:1 tỉ lệ tiến hành chi trả kim ngạch để khấu.
2. Ngạch trống vô pháp trực tiếp mua sắm download, có thể mua sắm VIP, trả phí chuyên mục cập chương trình học.

Ngạch trống nạp phí