#coding=utf-8
from selenium import webdriver
import time
import re
def len_zh(data):
temp = re.findall('[^a-zA-Z0-9.]+', data)
count = 0
for i in temp:
count += len(i)
return(count)
def get_format_line(aligin_type, str_list, width_list):
line = ""
for str_item, width_item in zip(str_list, width_list):
zh = len_zh(str_item)
if aligin_type == "L":
line += str_item.ljust(width_item-zh)
elif aligin_type == "M":
line += str_item.center(width_item-zh)
elif aligin_type == "R":
line += str_item.rjust(width_item-zh)
return line
def main():
url = "https://custodian.chinaclear.cn/login.jsp"
browser = webdriver.Ie()
browser.get(url)
time.sleep(7)
#模拟登陆
# name = browser.find_element_by_xpath("//*[@id='ptzh']") #输入平台账号
# name.send_keys("htsc")
userCode = browser.find_element_by_xpath("//*[@id='userCode']") #输入用户账号
userCode.send_keys("002541")
pwd = browser.find_element_by_xpath("//*[@id='pwd']") #输入密码
pwd.send_keys("123456")
browser.find_element_by_class_name("login_sub_btn").click() #点击登录
time.sleep(7)
browser.switch_to.default_content() #切换左侧iframe
loginUser = browser.find_element_by_class_name("ui-top-user").text #获取登录用户
loginUser = loginUser[4:]
print(loginUser)
browser.find_element_by_xpath("//*[@id='J_ui-layout-left_list']/ul/li[2]/span").click() #点开导航菜单
browser.find_element_by_xpath("//*[@id='faZhyecx']").click() #点击账户余额查询
time.sleep(2)
browser.switch_to.frame(browser.find_element_by_xpath("/html/body/div[1]/div[5]/div/div[2]/iframe")) #切换右侧iframe
count = 0
inputs = browser.find_elements_by_class_name("f-combo-list-div"); #获取下拉框所有账号
width_list = [10, 28, 80, 20, 15] #格式化参数
sdate = browser.find_element_by_id("sdate").get_attribute("value").replace("-", "") #获取搜索日期
file_write_obj = open("D://dest.txt", 'w')
file_write_obj.writelines(loginUser+"\n") #写入用户ID
for i in range(1, len(inputs), 1): #循环取值
count = count+1
browser.find_element_by_class_name("f-combo-trigger").click() # 点开下拉菜单
path = "//*[@id='f-combo-szhhaccount-list-"+str(i)+"']"
array = browser.find_element_by_xpath(path).text
browser.find_element_by_xpath(path).click() #选中第i个元素
browser.find_element_by_xpath("//*[@id='btn_search']").click() #点击查询
time.sleep(2)
result = browser.find_element_by_class_name('ui-jqgrid-btable').text
if result != "":
result = get_format_line("L", result.split(), width_list)
file_write_obj.writelines(result)
else:
list = array.split(":")
result = [sdate, list[0], list[1], "无", "无"]
result = get_format_line("L", result, width_list)
file_write_obj.writelines(result)
file_write_obj.write('\n')
print(count)
print(result)
file_write_obj.close()
if __name__ == '__main__':
main()
python使用selenium组件写的爬虫Demo
最新推荐文章于 2025-05-21 14:28:55 发布