精华内容
下载资源
问答
  • 如果能够用程序实现自动填表,效率可以提高一倍以上,并且能够移植到多台计算机,进一步提高工作效率。webdriver是python的selenium库中的一个自动化测试工具,它能完全模拟浏览器的操作,无需处理复杂的request、...

    在日常工作中常常需要重复填写某些表单,如果人工完成,费时费力,而且网络延迟令人十分崩溃。如果能够用程序实现自动填表,效率可以提高一倍以上,并且能够移植到多台计算机,进一步提高工作效率。webdriver是python的selenium库中的一个自动化测试工具,它能完全模拟浏览器的操作,无需处理复杂的request、post,对爬虫初学者十分友好。

    一、环境配置

    python3.6+selenium库+xlrd库+xlwt库

    其中xlrd和xlwt库用于读写excel表中的数据。

    还要下载一个浏览器的driver文件用于打开浏览器,注意要选择与计算机系统相符合的版本(max/windows64位/windows32位)

    将下载下来的driver.exe放到浏览器根目录和python的根目录

    二、打开网页

    以IE浏览器为例,以下两行代码就可以实现打开一个IE浏览器并且访问我们需要填表的网站

    driver=webdriver.Ie()

    driver.get("http://xxxx.com/")

    如果网站需要登陆(需要填表的一般是公司内部网站),再写一个login函数,将driver作为参数调用

    driver = login(driver)

    注意一定要将driver传回,这样driver才能继续接受程序的指令

    三、元素定位

    webdriver的工作原理是找到网页中某一个元素,可以对其进行填入数据或点击等操作。

    我主要用到的元素定位方式有

    driver.find_element_by_id("someid")#通过元素的id定位

    driver.find_element_by_css_selector("input[value="确定"")#查找一个input元素,它的value属性值为"确定"

    driver.find_element_by_xpath("//span[contains(@style,"COLOR: red")]/span[1]")#查找一个style属性值为"COLOR:red"的span元素的第一个span子元素

    (1)通过id定位

    如果我们想在网页表单的某一个位置填某项值或者点击某个按钮,我们首先要用开发者工具查看这个元素的源代码,然后首先观察它有没有id,如果有id,直接用id定位该元素。然后,用

    driver.find_element_by_id("someid").click()#点击元素

    driver.find_element_by_id("someid").send_keys("somekeys")#填入"somekeys"

    driver.find_element_by_id("someid").clear()#清空输入框中已有的值

    实现我们想要做的操作。

    (2)通过ccs selector定位

    如果我们想要操作的元素没有ID,那么我们就要找到它跟网页其他元素不同的特征,ccs selector是一种十分灵活的定位方式,其中用value定位是一个不错的选择。以

    driver.find_element_by_css_selector("input[value="确定"")

    为例,双引号中的input可以换成任何网页元素(div、span、input、a等),中括号中是该元素的某一个属性(style、id、value、class等),等号后面是该属性的值。

    注意,如果网页中有多个元素同时满足ccs selector的条件,如有多个value=“确定” 的input,那么find_element_by_css_selector只会定位到在html源代码中最靠前的一个,而find_elements_by_css_selector会找到源代码中所有满足条件的元素,并以列表的形式返回这些找到的元素。例如,网页中弹出很多个提示框,我们要一一去点确定,可以这样操作

    list=driver.find_elements_by_css_selector("input[value=" 确定 "]")for l inlist:

    l.click()

    但是,如果这些提示框是重叠出现的,而最上层的提示框实际上在源码中更靠后的位置,那么列表中第一个“确定”元素就会被叠在上面的提示框遮挡,无法点击,这个时候倒序一下数组就可以了,从最后一个“确定”元素开始点击

    query=driver.find_elements_by_css_selector("input[value=" 确定 "]")for q in query[::-1]:

    q.click()

    (3)通过xpath定位

    xpath定位比较复杂但是非常全面,当这个元素的class、style属性和其他元素一样,实在没什么特点可以一步定位的时候,我们就可以用xpath,先找到我们想要的元素的父子兄弟元素,再定位到我们想要的元素。例如

    driver.find_element_by_xpath("//*[@class="submit clear"]/input[1]").click()

    text=driver.find_element_by_xpath("//input[@value=" 确定 "]/../preceding-sibling::div[1]").text

    driver.find_elements_by_xpath("//span[contains(@style,"COLOR: red")]/span[1]")

    引号中的//表示相对定位,表示从源代码中任何地方开始寻找。

    //后可以跟任何元素,*代表任意元素,即定位符合属性筛选任何元素。

    中括号内是属性的筛选条件,@后可以加任意属性。contains(@style,"COLOR: red")表示的筛选条件是:style属性中包含”COLOR:red“。这里为什么不直接用@style="COLOR: red"

    的原因是,可能在我们审查源代码的时候这个元素的style属性只有"COLOR: red"这一条,但是动态界面的style属性经常变化,程序运行时直接用等于是定位不到这个元素的。

    /.. 可以定位这个元素的父亲元素

    / 可以定位这个元素的子元素

    /preceding-sibling:: 可以定位这个元素的哥哥元素

    /following-sibling:: 可以定位这个元素的弟弟元素

    如/input[1]表示子元素中第一个input、/../preceding-sibling::div[1]表示父元素的哥哥元素中的第一个div

    (4)通过当前节点定位

    有时候我们会遇到需要判断一下元素当前的状态(是否被选择)再决定接下来的操作的情况,这时就需要用一个变量来保存当前节点

    LTE=driver.find_element_by_xpath("//input[@id="LTE"]/../span[1]"

    然后再用get_attribute获得当前节点元素的属性,在这个例子里,如果元素为蓝色,就不需要点击。代码实现为:

    if LTE.get_attribute("style")=="COLOR: blue":pass

    else:

    LET.click()

    需要筛选出特定文本的情况:

    red=driver.find_elements_by_xpath("//span[contains(@style,"COLOR: red")]/span[1]")#找出所有红色的文本

    for r inred:if "低消" in r.text:#如果文本信息中包含"低消’

    r.find_element_by_xpath("./../preceding-sibling::input[1]").click()#注意从当前节点定位的时候要以"./’开头

    break

    如果寻找的元素需要滚动界面才能看到,这个时候可以用js聚焦此元素,页面便会滚动到该元素的位置

    target=driver.find_element_by_css_selector("input[value=" 确定 "]")

    driver.execute_script("arguments[0].scrollIntoView();", target)

    target.click()

    四、不确定情况处理

    (1)有可能出现的弹窗

    在填表过程中,有些地方有可能出现一个弹框也有可能不出现,这个时候,无论这个弹窗是什么,用try..except语句处理就可以解决

    js触发的弹窗:

    try:

    driver.find_element_by_css_selector("input[value=" 确定 "]").click()exceptException as e:pass

    网页alert弹窗:

    try:

    driver.switch_to.alert.dismiss()exceptException:pass

    dismiss()对应的是alert弹窗的”取消“项,accept()对应的是”确定“项,driver.switch_to.alert.text 可以获得弹窗的文本内容。

    (2)数量不定的弹窗

    对上文提到的多个提示框情况,除了用 query=driver.find_elements_by_css_selector("input[value=" 确定 "]") 一次性找到所有元素再顺序或倒序点击之外,还可以用一个while循环解决

    while(1):try:

    driver.find_element_by_css_selector("input[value=" 确定 "]").click()exceptException as e:break

    (3)网络延迟

    有些网页在点击查询信息之后需要加载一段时间,加载中的页面是找不到我们接下来想找的元素的,因此程序就会报错,此时有两种解决方法。

    一种是固定等待一段时间,等待网页加载完毕,这种方法的缺点是很难找到等待的最佳时间,太短的话页面还没加载完,太长就影响效率

    time.sleep(2)

    另一种是用一个while循环一直寻找下一个我们要找的元素

    while(1):try:

    driver.find_element_by_id("continueTrade").click()break

    exceptException:pass

    这种方法的前提是下一个要找的元素必定会出现

    五、frame处理

    总结起来就是:frameset不用切,frame层层切。最好一系列填表操作完后都用 driver.switch_to.default_content() 回到原文档,这样不容易混乱

    这里再补充一点frame没有id时的切入方法

    frame= self.driver.find_element_by_xpath("/html/body/div[12]/iframe")#先定位frame位置,用一个变量储存这个节点

    self.driver.switch_to_frame(frame)#再切入这个节点

    六、excel数据读写

    excel数据读写十分简单,看代码就好了:

    defread(file):

    data= xlrd.open_workbook(file)#打开excel文件

    table = data.sheets()[0]#读取第一个sheet的数据

    phones = table.col_values(0)#以列表形式存储第一列数据

    peoples = table.col_values(1)#以列表形式存储第二列数据

    returnphones,peoplesdefwrite(result):

    file=xlwt.Workbook()#创建一个excel文件

    table = file.add_sheet("sheet1")#添加一个sheet

    for i in range(len(result)):#写入数据

    table.write(i,0,result[i][0])

    table.write(i,1,result[i][1])

    table.write(i,2,result[i][2])

    file.save("result.xls")

    结语:希望技术能让人们从无意义的重复劳动中解脱:D

    展开全文
  • 记性太差,人又懒,于是决定用Python实现自动化定时任务。 1、核心模块 打开IEChrome。 打开网页按下F12拿到请求头和请求体。 (假装此处有图片) Pycharm启动! 根据拿到的请求头和请求体,完成核心代码编写。 url ...
  • python selenium 实现网页自动登录

    千次阅读 2018-05-30 12:47:39
    插件:selenium流程:打开网页自动填写表单,有关验证码识别登录的部分请看另一篇文章Python+Selenium 含验证码的登录处理from selenium import webdriver browser = webdriver.Firefox() #窗口全屏 browser....

    插件:selenium

    流程:打开网页自动填写表单,有关验证码识别登录的部分请看另一篇文章

    Python+Selenium 含验证码的登录处理

    from selenium import webdriver
    browser = webdriver.Firefox()
    #窗口全屏
    browser.maximize_window()
    browser.get("http://www.51ym.me/user/Register.aspx")
    #表单赋值
    input_username = browser.find_element_by_id('username')
    input_username.send_keys("ghoul13")
    input_pwd = browser.find_element_by_id('password')
    input_pwd.send_keys("123456")
    input_rapwd = browser.find_element_by_id('rapwd')
    input_rapwd.send_keys("1234567890")
    input_qq = browser.find_element_by_id('qq')
    input_qq.send_keys("3287611848")
    #点击提交按钮
    button = browser.find_element_by_id('SubmitBtn')
    button.click()
    #有关验证码识别登录的请看我的另一篇文章

    展开全文
  • 我的实现思路是把ID对应定位信息放在excel表格里,通过抓取excel表里提供的定位信息和所对应的需要更新的值进行数据更新。 这里分别对文本框信息输入,下拉列表选择和复选按钮勾选做了封装处理,再把相应的方法统一...

    这是一个用来更新公园信息的数据管理系统,而截图这个页面主要是用来更新site信息的,幸运的是这个页面的每个元素都可以用ID来定位。其中包含三种形式的信息:文本框,下拉列表和复选按钮。我的实现思路是把ID对应定位信息放在excel表格里,通过抓取excel表里提供的定位信息和所对应的需要更新的值进行数据更新。
    这里分别对文本框信息输入,下拉列表选择和复选按钮勾选做了封装处理,再把相应的方法统一放到update方法来实现。这样就不需要再对每个字段进行单独处理了。
    在这里插入图片描述
    封装代码:

    from selenium.webdriver.support.ui import Select
    from selenium.common.exceptions import NoSuchElementException, TimeoutException
    import traceback
    import time
    
    
    class BasePage:
    	def __init__(self, driver):
    		self.driver = driver
    
        # 对查找单个页面元素进行封装。
    	def find_element(self, by, locator):
    		by = by.lower()
    		element = None
    		if by in ['id', 'name', 'xpath', 'class', 'tag', 'link', 'plink']:
    			try:
    				if by == 'id':
    					element = self.driver.find_element_by_id(locator)
    				elif by == 'name':
    					element = self.driver.find_element_by_name(locator)
    				elif by == 'xpath':
    					element = self.driver.find_element_by_xpath(locator)
    				elif by == 'class':
    					element = self.driver.find_element_by_class_name(locator)
    				elif by == 'tag':
    					element = self.driver.find_element_by_tag_name(locator)
    				elif by == 'link':
    					element = self.driver.find_element_by_link_text(locator)
    				elif by == 'plink':
    					element = self.driver.find_element_by_partial_link_text(locator)
    				else:
    					print('Not find the element "{}"!'.format(locator))
    				return element
    			except NoSuchElementException as e:
    				print(traceback.print_exc())
    		else:
    			print('Provided a wrong locator "{}"!'.format(locator))
    			
        # 对查找多个页面元素进行封装。
    	def find_elements(self, by, locator):
    		by = by.lower()
    		elements = None
    		if by in ['id', 'name', 'xpath', 'class', 'tag', 'link', 'plink']:
    			try:
    				if by == 'id':
    					elements = self.driver.find_elements_by_id(locator)
    				elif by == 'name':
    					elements = self.driver.find_elements_by_name(locator)
    				elif by == 'xpath':
    					elements = self.driver.find_elements_by_xpath(locator)
    				elif by == 'class':
    					elements = self.driver.find_elements_by_class_name(locator)
    				elif by == 'tag':
    					elements = self.driver.find_elements_by_tag_name(locator)
    				elif by == 'link':
    					elements = self.driver.find_elements_by_link_text(locator)
    				elif by == 'plink':
    					elements = self.driver.find_elements_by_partial_link_text(locator)
    				else:
    					print('Not find the element "{}"!'.format(locator))
    				return elements
    			except NoSuchElementException as e:
    				print(traceback.print_exc())
    		else:
    			print('Provided a wrong locator "{}"!'.format(locator))
    
    	# 点击页面元素
    	def click(self, by, locator):
    		element = self.find_element(by, locator)
    		element.click()
    
    	# 输入框输入新信息
    	def type(self, by, locator, value):
    		y = [x for x in value if x != '']
    		if len(y) > 0:
    			element = self.find_element(by, locator)
    			element.clear()
    			element.send_keys(value.strip())
    		else:
    			pass
    
         # 下拉菜单通过可见文本进行选择
    	def select(self, by, locator, text):
    		y = [x for x in text if x != '']
    		if len(y) > 0:
    			element = self.find_element(by, locator)
    			element_element = Select(element)
    			element_element.select_by_visible_text(text.strip())
    		else:
    			pass
    
    	# 复选按钮勾选时我们需要首先勾掉已选选项
    	def uncheck(self, by, locator, options):
    		y = [x for x in options if x != '']
    		if len(y) > 0:
    			elements = self.find_elements(by, locator)
    			for element in elements:
    				element.click()
    		else:
    			pass
    
    	# 选择excel表格所提供的选项进行勾选
    	def check(self, by, locator, options):
    		y = [x for x in options if x != '']
    		if len(y) > 0:
    			be_options = options.split(',')
    			for option in be_options:
    				element = self.find_element(by, locator.format(option.strip()))
    				element.click()
    		else:
    			pass
    
    	# def input(self, left_title, excel_title, by, locator, values):
    	# 	y = [x for x in values if x != '']
    	# 	if len(y) > 0:
    	# 		if left_title == excel_title:
    	# 			self.type(by, locator, values)
    	# 	else:
    	# 		pass
    
        # 根据excel表格提供标题所包含的关键字来决定进行哪种数据操作
    	def update(self, title, by, values):
    		y = [x for x in values if x != '']
    		if len(y) > 0:
    			if '_Text' in title:  # 文本框
    				field = title.strip().split('_')
    				locator = field[0]
    				self.type(by, locator, values)
    			elif '_Select' in title:  # 下拉列表
    				field = title.strip().split('_')
    				locator = field[0]
    				self.select(by, locator, values)
    			elif '_Option' in title:  # 复选按钮
    				field = title.strip().split('_')
    				locator = field[0]
    				self.uncheck('xpath', '//input[@checked="" and contains(@id, "{}__")]'.format(locator), values)
    				self.check('id', '%s__{}'%locator, values)
    			else:
    				print('Please indicate the data type for the title "{}" in Excel!!!'.format(title))
    
    		else:
    			pass
    
    	# def set(self, left_title, excel_title, by, locator, text):
    	# 	y = [x for x in text if x != '']
    	# 	if len(y) > 0:
    	# 		if left_title == excel_title:
    	# 			self.select(by, locator, text)
    	# 	else:
    	# 		pass
    
    	# 登录系统进行封装方便以后重用
    	def login_orms(self, url, username, password):
    		# driver = webdriver.Firefox(executable_path='D:\\Selenium 3.14\\geckodriver.exe')
    		self.driver.delete_all_cookies()
    		self.driver.get(url)
    		self.driver.maximize_window()
    		time.sleep(2)
    
    		self.type('id', 'userName', username)
    		self.type('id', 'password', password)
    		self.click('id', 'okBtnAnchor')
    		time.sleep(2)
    
    	# 登录系统后选择Contract
    	def goto_manager_page(self, url, username, password, contract, page):
    		self.login_orms(url, username, password)
    		time.sleep(2)
    		self.click('xpath', "//option[text()='" + contract + " Contract']")  # 通过click也可以对下拉列表进行选择
    		time.sleep(2)
    		self.click('link', page)
    		time.sleep(2)
    

    下面是实现代码(这里没有对操作excel表格进行封装)

    from Orms.BasePage import *
    import xlrd
    
    """"""
    url = 'reserveamerica.com/xxxx'
    account_user = 'xxx'
    account_password = 'xxx'
    wb = xlrd.open_workbook('D://SiteandLoopSetUp.xls')
    """"""
    sheet1 = wb.sheet_by_index(0)
    sheet2 = wb.sheet_by_index(1)
    # read provided information in Excel.
    contract = sheet1.col_values(0)[1].strip()
    park_name = sheet1.col_values(1)[1].strip()
    search_ids = sheet1.col_values(2)[1:]
    check_in_times = sheet1.col_values(3)[1:]
    check_out_times = sheet1.col_values(4)[1:]
    
    cols_num = sheet1.ncols
    print('There will be "{}" fields need to update as following:'.format(cols_num))
    left_titles = sheet1.row_values(0)[5:cols_num]
    print(left_titles)
    
    browser = webdriver.Firefox(executable_path='D:\\Selenium 3.14\\geckodriver.exe')
    driver = BasePage(browser)
    driver.goto_manager_page(url=url, username=account_user, password=account_password, contract=contract, page='Inventory Manager')
    
    # Input park name and search
    driver.type('id', 'FacilitySearchCriteria.facilityName', park_name)
    
    driver.click('xpath', '//a[@aria-label="Search"]')
    time.sleep(3)
    
    # Click facility id in search results to facility details page
    driver.click('xpath', '//tr[@name="e_Glow"]/td/a')
    time.sleep(2)
    
    # Choose Loop/Site Set-up for Facility Details drop-down list
    driver.select('id', 'page_name', 'Loop/Site Set-up')
    time.sleep(2)
    
    driver.click('xpath', '//a[@tabindex="-1" and @accesskey="S"]')
    time.sleep(2)
    
    for x in range(len(search_ids)):
    	try:
    		driver.select('id', 'search_type', 'Site ID')
    		time.sleep(2)
    
    		driver.type('id', 'search_value', search_ids[x])
    
    		driver.click('id', 'goAnchor')
    		time.sleep(2)
    
    		driver.click('xpath', '//tr[@name="e_Glow"]/td[2]/a')
    		time.sleep(2)
    
    		# in_time and out_time are required fields, need to handle separately.
    		in_time = check_in_times[x].strip().split(' ')
    		y = [x for x in in_time if x != '']
    		if len(y) > 0:
    			driver.type('id', 'Checkin Time', in_time[0])
    			driver.select('id', 'Checkin Time_ispm', in_time[1])
    		else:
    			pass
    
    		out_time = check_out_times[x].strip().split(' ')
    		y = [x for x in out_time if x != '']
    		if len(y) > 0:
    			driver.type('id', 'Checkout Time', out_time[0])
    			driver.select('id', 'Checkout Time_ispm', out_time[1])
    		else:
    			pass
    
    		# update left information in excel.
    		for i in range(len(left_titles)):
    			title = left_titles[i]
    			excel_values = sheet1.col_values(5+i)[1:]
    			driver.update(title, 'id', excel_values[x])
    	except Exception as e:
    		raise Exception
    	else:
    		driver.click('xpath', '//a[@aria-label="OK"]')
    

    以上就是我模拟手工操作进行自动填写页面表格的实现方法,虽然每次做都需要查找需要更新信息的页面元素ID的值并拷贝到excel中,但是对于几十个Contract几十种形式的site类型,加起来有上千个fields需要单独处理,这样做就显得简单很多。

    当然肯定还有不完善的地方,比如都用的强制等待而没有用隐形等待,也一定有更好的实现方式,欢迎各位指正~~~

    展开全文
  • Python -Selenium网页自动填写入门

    千次阅读 2018-11-19 15:29:41
    Selenium可以是一个很好的自动化测试框架,在python中可以用以下代码实现自动打开 from selenium import webdriver driver = webdriver.Chrome("C:\Program Files (x86)\Google\Chrome\...

    Selenium可以是一个很好的自动化测试框架,在python中可以用以下代码实现自动打开

    from selenium import webdriver
    
    driver = webdriver.Chrome("C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe")
    driver.get("http://itmg.cpic.com.cn/pages/l.html")
    
    driver.find_element_by_id("kw").clear()
    driver.find_element_by_id("kw").send_keys("selenium")
    

    如果没有selenium可以使用
    pip install selenium进行python插件的安装。如果遇到以下错误,说明
    WebDriverException: Message: ‘chromedriver’ executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home
    说明还没安装浏览器驱动chromedriver,可以去官网下载
    https://chromedriver.storage.googleapis.com/index.html?path=2.43/
    然后把上面的webdriver.Chrome的传入的变量设置成下载好后的chromedriver地址,官网建议跟chrome.exe放同一目录下,否则还需要配置.
    都没问题后,执行上面的代码就可以自动打开chrome浏览器,并且百度已经被打开,搜索栏里也有selenium的输入。
    在这里插入图片描述
    更多详细的Selenium说明请见
    http://www.testclass.net/selenium_python/

    如果是IE就需要修改为
    driver=webdriver.Ie(“D:\tools\IEDriverServer.exe”)
    如果把webdriver的路径加入环境变量,就不用给webdriver传递参数

    安装三大浏览器的驱动如下:

    1.chromedriver 下载地址:https://code.google.com/p/chromedriver/downloads/list

    2.Firefox的驱动geckodriver 下载地址:https://github.com/mozilla/geckodriver/releases/

    3.IE的驱动IEdriver 下载地址:
    http://selenium-release.storage.googleapis.com/index.html
    如果安装IE后启动不起来报错,请按照如下文章修改下安全设置。
    https://blog.csdn.net/a5650892/article/details/78380289

    展开全文
  • Python实现自动小One易统计打卡

    千次阅读 2020-05-22 23:23:18
    声明:本程序仅适用于身体健康且活动范围稳定人员使用,请如实填写相关信息。发现身体不适请停止使用并尽早上报!!! 使用本代码之前需要安装两个python库: pip install requests pip install json 首先在网页打开...
  • 记性太差,人又懒,于是决定用Python实现自动化定时任务。 1 核心模块 打开IEChrome。 打开网页按下F12拿到请求头和请求体。 (假装此处有图片) Pycharm启动! 根据拿到的请求头和请求体,完成核心代码编写...
  • 最近女同让我帮助从百度云下载200个文件...自动填写提取码下载百度云资源方法:for读取文件中的连接和提取码1 打开网页(link)2 输入提取码3 下载"""from selenium importwebdriverfrom selenium.w...
  • python实现简单的百度云自动下载

    千次阅读 2018-09-20 21:32:00
    最近女同让我帮助从百度云下载200...自动填写提取码下载百度云资源 方法: for 读取文件中的连接和提取码 1 打开网页(link) 2 输入提取码 3 下载 ''' from selenium import webdriver from selenium.we...
  • 最近女同让我帮助从百度云下载200个文件...自动填写提取码下载百度云资源方法:for读取文件中的连接和提取码1 打开网页(link)2 输入提取码3 下载"""from selenium importwebdriverfrom selenium.w...
  • 使用selenium库实现自动抓取网页元素,并定位填写表单数据,可实现自动填写,省去大量人力。为方便使用selenium库以及方便处理运行中的错误,本文将selenium库进行一定的再封装,使读者了解selenium库后,就可快速...
  • Python:疫情通定时自动填写(附代码)

    千次阅读 2020-05-25 15:15:24
    前言 ...记性太差,人又懒,于是决定用Python实现自动化定时任务。 1、核心模块 打开IEChrome。 打开网页按下F12拿到请求头和请求体。 (假装此处有图片) Pycharm启动! 根据拿到的请...
  • python+selenium实现疫情期间全自动打卡

    千次阅读 多人点赞 2020-04-17 11:52:13
    文章目录前言问题分析网页源码分析与代码实现一、加载火狐驱动二、输入账号密码并提交三、进入打卡界面并点击左侧菜单栏iframe内元素的定位动态id/class的定位四、表格填写五、提交表格全部代码 前言 因为疫情缘故,...
  • 1.登录和识别验证码过程我使用的Google浏览器,编译器是PyCharm2017.2.4,首先进入教务处主页,如下所示:在...为了了解这些属性在登陆界面的网页中的情况,我们先使用一次错误的登录请求,使用开发者工具检查网页的状态
  • 文章目录一、环境准备1、Python2、Pytest3、Allure二、demo实现1、新建工程2、填写代码3、运行工程 前言 建议大家学习pytest及allure框架的时候参照着官网,虽然说官网上都是英文,但Google 有个翻译网页的功能,...
  • 之前发过一篇关于python实现模拟登陆的方法,并没有深入去实现更多的功能。使用py脚本可以在本地...那么就在获取验证码的时候保存cookie标识,等验证码识别完毕(手动填写或自动填写)然后使用已保存的cookie信息进...
  • Python编程快速上手—让繁琐工作自动化》是畅销Python编程图书,帮助你通过编程快速实现工作自动化。在本书中,你将学习利用Python 编程,在几分钟内完成手工需要几小时的工作,而事先却无需具备编程经验。一旦掌握...
  • Python编程快速上手—让繁琐工作自动化》是畅销Python编程图书,帮助你通过编程快速实现工作自动化。在本书中,你将学习利用Python 编程,在几分钟内完成手工需要几小时的工作,而事先却无需具备编程经验。一旦...
  • 亚马逊畅销Python编程图书,帮助你通过编程快速实现工作自动化 在本书中,你将学习利用Python 编程,在几分钟内完成手工需要几小时的工作,而事先却无需具备编程经验。一旦掌握了编程的基础知识,你就可以毫不费力...
  • 利用selenium模块控制Chrome浏览器打开163邮箱网页,并实现自动填写账号密码操作。 在Python中利用selenium模块实现这一目的只需要简单几步,但碍于初学者,本身对于HTML的认知也仅限于自学Python的书中提及的...
  • 问卷网自动填写提交调查问卷

    千次阅读 2020-01-03 00:33:11
    此段程序主要使用python的selenium自动化模块,通过网页自动化来实现题目的自动选择和提交。虽然下面这段代码只针对于某一特定的调查问卷,但是其原理都是一样的,具体情况需要具体分析;问卷调查最主要的还是数据...
  • 最近一直在学习Python,就大胆的设想了一个方案,让客户或者运营人员就能替换资源,然后根据他们上传的资源自动化编译、打包、发布。探索之路:基本流程如上所示:1.打开网页填写渠道信息(APP名字、资源文件),...
  • 使用MySQL和flask实现,所有功能需和数据库互连,需要网页交互 创建数据库shop,通过flask连接数据库,使用flask建表 1.用户注册,登录,退出,修改个人信息 在注册界面中,用户需要填写会员信息,然后进行“同意...
  • 网站表单自动填写【使用pyautogui 】

    千次阅读 2020-02-17 11:17:36
    本来想用python的selenium配合可开发的火狐浏览器驱动实现(毕竟网上大家都是这么做的)。可是由于一下几个问题让我取消了这个念头: 【主要原因】不知道网怎么了就是打不开github下载不了驱动。 本质上还需要对...
  • 本文将介绍如何用 Python 语言实现 12306 自动预定列车票,也就是坊间常说的“抢票”,但个人觉得,这不算是“抢”,只不过是一定程度的自动化。 总体设计 所谓抢票软件,本质上就是基于浏览器驱动,实现登录、预定...
  • 利用云函数实现网易云音乐自动签到、刷歌

    千次阅读 热门讨论 2020-08-10 13:42:28
    使用腾讯云免费的【云函数服务】搭建网易云自动打卡,无需手动网页登录打卡,支持多账号,邮箱登陆,每天自动完成,不用每天去网站提交! 刷的歌都来自您的每日推荐歌单,不影响听歌风格。 部署 进入腾讯云 选择 ...
  • # 尝试使用python的selenium实现对微人大的自动登陆,先手动登陆一边,抓包cookies后用add\_cookie()添加到browser实例中,但属性界面后依然无法自动登陆,仍然停留在输入账号和密码的界面,怎么办? ![图片说明]...
  • 、Poplar:网页版自然语言标注工具、图片文字去除,可用于漫画翻译 、186种语言的数字叫法库、Amazon发布基于知识的人-人开放领域对话数据集 、中文文本纠错模块代码、繁简体转换 、 Python实现的多种文本可读性评价...
  • 验证码处理主要有两种:手动输入和打码平台自动填写(手动输入配置简单,打码平台输入适合大规模抓取)。 手动方式流程: 1、下载PhantomJS.exe,放在python的安装路径(适合Windows系统,Linux请找百度)。 2、...

空空如也

空空如也

1 2
收藏数 33
精华内容 13
关键字:

python实现自动填写网页

python 订阅