精华内容
下载资源
问答
  • Pycharmexcel文件:导入的excel模板二、python代码 由于工作需要,需要每天定时导入相关excel文件进入后台数据库,由于导入的逻辑比较复杂,所以决定通过python模拟登陆导入网站,点击相关功能来实现自动导入。...

    一、环境准备

    Python版本:3.4

    编辑器:Pycharm

    excel文件:导入的excel模板

    二、python代码

        由于工作需要,需要每天定时导入相关excel文件进入后台数据库,由于导入的逻辑比较复杂,所以决定通过python模拟登陆导入网站,点击相关功能来实现自动导入。

    代码如下:

    #!/usr/bin/env python
    # coding=utf-8
    # import time
    from selenium import webdriver
    import os
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdriver.support.wait import WebDriverWait
    # import requests
    # from selenium.webdriver.common.keys import Keys
    
    
    # 自动化操作创研系统的线索导入功能
    def ui_auto_operation():
        # 模拟登陆
        # rep = requests.Session()
        browser = webdriver.Firefox()
        browser.implicitly_wait(10)  # 设置隐性等待,等待10S加载出相关控件再执行之后的操作
        browser.maximize_window()
        browser.get('http://www.*******.com.cn/****/Login.aspx')
        # time.sleep(10) # 强制等待一般只用于测试
        # browser.refresh()
        # 输入用户名
        username = browser.find_element_by_xpath('//*[@id="txtUserName"]')
        username.clear()
        username.send_keys('*******')
        print('username input success')
        # 输入密码
        browser.find_element_by_xpath('//*[@id="txtPassword"]').send_keys('******')
        print('password input success')
        # # 加载验证码
        # yzm = browser.find_element_by_xpath('/html/body/div[2]/div/div[2]/form/dl[3]/dd/input')
        # yzm.send_keys(input('输入验证码:'))
        # 点击登陆
        browser.find_element_by_xpath('//*[@id="btnLogin"]').click()
        print('login success')
        # cookies = browser.get_cookies()
        # for cookie in cookies:
        #    rep.cookies.set(cookie['name'], cookie['value'])
        # 爬取对应网页的数据
        browser.current_window_handle
        browser.find_element_by_xpath('/html/body/div[2]/div[1]/div[1]/div[8]/div/a/span').click()
        # 切换到当前窗口
        browser.current_window_handle
        # time.sleep(5)
        tow_drive = browser.find_element_by_xpath('/html/body/div[2]/div[1]/div[1]/div[8]/ul/li[5]/a')
        tow_drive.click()
        print('turn success')
        browser.current_window_handle
        # time.sleep(2)
        # 切换到iframe框架里面
        browser.switch_to.frame(browser.find_element_by_xpath('//*[@id="mainFrame"]'))
        # # 输入框只读属性的修改
        # js = 'document.getElementById("Text1").removeAttribute("readonly");'
        # browser.execute_script(js)
        # # 定位并且输入路径数据
        # receiveStart = browser.find_element_by_xpath('//*[@id="Text1"]')
        # receiveStart.clear()
        # receiveStart.send_keys('C:\\fakepath\\5096.xls')
        # # receiveStart.send_keys(Keys.RETURN)
        # 点击上传文件按钮
        browser.find_element_by_xpath('//*[@id="btn1"]').click()
        # 调用写好的exe实现上传,autoup.exe的建立参考下面的网站
        # https://www.cnblogs.com/sunjump/p/7268805.html
        os.system("C:\\fakepath\\autoup.exe")
        # time.sleep(5)
        load = browser.find_element_by_xpath('//*[@id="btn_lead"]')
        load.click()
        try:
            # 每隔2s就去扫描弹出框是否存在,总时长是60s,存在就继续执行之后代码
            WebDriverWait(browser, 60, 2).until(EC.alert_is_present())
            # 处理弹出alert框
            alert = browser.switch_to.alert
            alert.accept()
        finally:
            browser.close()
            # browser.quit()
    
    
    if __name__ == '__main__':
        # @version : 3.4
        # @Author  : robot_lei
        # @Software: PyCharm Community Edition
        ui_auto_operation()
    

    三、注意事项

        此网站属于内部使用,不用输入验证码就可以实现登陆,所以操作相对简单很多。其中遇到的主要问题:

    (1)、iframe框架的切换,也就是加载的网页中有部分代码存在iframe里面,导致页面的代码加载不出来,python无法定位到相关的元素。

    (2)、上传的输入框不是直接用的input和参数传入原因,导致不能直接在在上传的文件框输入需要导入的文件路径,需要点击导入按钮,然后选择文件路径,再点击上传按钮才可以上传。

    (3)、alert弹出框处理,由于导入数据比较多的时候,时间过长会导致alert弹出框还没弹出,但是代码就开始操作弹出框了,此时肯定无法定位元素,所以需要等待一段时间定时扫描查看来处理弹出框。

    (4)、使用SciTE Script Editor编辑程序时需要在file->Encoding里面选择编码,一般是utf-8。

    对应代码如下:

    ;等待5秒钟,让上传窗口出现
    WinWait("CLASS:#32770","",5)
    ;把输入焦点定位到上传输入文本框中,类型为Edit,编号为1,也就是上面获取到内容
    ControlFocus("文件上传", "","Edit1")
    ;在文件名那里,输入需要上传的文件绝对路径
    ControlSetText("文件上传", "", "Edit1", 'C:\fakepath\5096.xls')
    ;等待上传时间,单位是毫秒 1秒 = 1000 毫秒,文件大的话需要设置长点
    Sleep(5000)
    ;点击"打开"按钮,也就是上传,完成整个上传过程
    ControlClick("文件上传", "","Button1");



    展开全文
  • python实现网页自动点击下一页

    万次阅读 2018-06-19 09:32:10
    这里以网易云音乐为例,歌手按A,B,C,D...,A-Z,自动点击编译器是pycharmfrom selenium import webdriverimport timel = range(65,91)d=webdriver.Chrome()for x in l:d.get(url="...amp;in...
    这里以网易云音乐为例,歌手按A,B,C,D...,A-Z,自动点击

    编译器是pycharm

    from selenium import webdriver
    import time
    l = range(65,91)

    d=webdriver.Chrome()
    for x in l:
    time.sleep(1)
    点击手动点击A,B,C会发现地址中initial=   是有规律的69,70,71.....,所以设置函数range()

    然后写个循环方法  for   in

    range函数原型:range(start, end, scan)

    参数含义:

               start:计数的开始位置,默认是从0开始。

               end: 计数的结束位置

               scan:每次跳跃的间距,默认为1。


    展开全文
  • python爬虫自动下载网页链接

    万次阅读 2018-11-20 11:14:25
    需求分析 今天遇到一个简单的需求,需要下载澳大利亚电力市场... Ctrl + F 一下,看到一共有395个zip链接。于是就想着用python爬虫自动下载。这个网页很简单,没有验证码,甚至不需要登录,因此自动下载的pytho...

    需求分析

    今天遇到一个简单的需求,需要下载澳大利亚电力市场NEM日前市场的发电商报价数据(http://nemweb.com.au/Reports/Current/Next_Day_Offer_Energy/),页面观感是这样的:

    Ctrl + F 一下,看到一共有395个zip链接。于是就想着用python爬虫自动下载。这个网页很简单,没有验证码,甚至不需要登录,因此自动下载的python代码也很简单。

     

    步骤

    爬取链接主要是如下3步:

    1. 第一步是爬取网页内容,保存在一个字符串content中

    content的观感是这样的

    从中可以看到链接是以'PUBLIC_NEXT_DAY_OFFER_ENERGY_(\d*)_(\d*).zip'的形式出现的,而且出现了两遍。

     

    2. 第二步是构造正则表达式,从content中匹配下载链接

    正则表达式构造为'(PUBLIC_NEXT_DAY_OFFER_ENERGY_(\d*)_(\d*).zip)',re.findall会返回一个三元tuple,分别是 (整个匹配到的字符串,第一个(\d*),第二个(\d*)). 由于上面提到了链接出现了两遍,所以可以用list转set来去重。

     

    3. 第三步是遍历链接的set,下载链接

    这一步就很trivial了,唯一要注意的是如果下载下来的文件所在的目录不存在,要提前作判断,建新目录。

     

    结果

    Done! 

     

    源代码

    """
    Created on Tue Nov 20 09:50:26 2018
    
    @author: weiyx15
    
    Automated downloading all data links from 
    http://nemweb.com.au/Reports/Current/Next_Day_Offer_Energy/
    
    """
    import urllib.request# url request
    import re            # regular expression
    import os            # dirs
    
    # parent url
    url = 'http://nemweb.com.au/Reports/Current/Next_Day_Offer_Energy/'
    
    # regular expression
    pattern = '(PUBLIC_NEXT_DAY_OFFER_ENERGY_(\d*)_(\d*).zip)'
    
    # pull request
    headers = {'User-Agent', 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36'}
    opener = urllib.request.build_opener()
    opener.addheaders = [headers]
    content = opener.open(url).read().decode('utf8')
    
    # match regex and drop repetition
    raw_hrefs = re.findall(pattern, content, 0)
    hset = set(raw_hrefs)
    
    # make directory
    if not os.path.exists('./auto_download'):
        os.makedirs('auto_download')
    
    # download links
    for href in hset:
        link = url + href[0]
        print(link)
        urllib.request.urlretrieve(link, os.path.join('./auto_download', href[0]))

     

    展开全文
  • 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()
    #有关验证码识别登录的请看我的另一篇文章

    展开全文
  • 同学写了个网页,页面有一个点赞的按钮,于是恶作剧写了个脚本自动化点赞,直接点到了“23333”……工具:python+splintersplinter安装:sudo pip install splinter打开python,直接命令行下输入:from splinter ...
  • python怎么模拟点击网页按钮?

    千次阅读 2020-02-25 16:52:39
    python怎么模拟点击网页按钮 前提环境: Python3 和 Visual Studio Code安装完毕 . 安装selenium : 在终端输入: pip install selenium, 如图 下载chromedriver : 登录...
  • Python进行网页自动打卡系统安装Python下载Chromedriver安装selenium设置定时自动运行Python程序 安装Python 可以直接Python官网下载,需要进行路径环境配置,最好还要下载一个顺手的编辑器。也可以用anaconda平台...
  • 初次实践:python网页自动截图 步骤如下: (1) 安装python selenium 库,推荐使用pip快速安装最新版本 pip install selenium (2) 检查Chrome浏览器的版本,下载对应版本的chromedriver。 (3) 通过地址栏里...
  • Python 网页自动登录(签到)

    千次阅读 2019-09-17 09:28:29
    背景:因为某些原因,每天上网必须登录某个网页,觉得很麻烦 所以就写了这样一个自动登录网页的东西 使用软件Fiddler.exe 注:无法识别https时,可安装Fiddler https证书,具体怎样安装 百度一下你就知道 在网页填写好...
  • Python - 爬虫实现网页自动登录、点击与页面的跳转

    千次阅读 多人点赞 2019-11-22 23:52:15
    近段时间,因熊孩子沉迷于电视而致命学习成绩下降,遂有了在不影响家里老人正常观看电视的情况下对电视进行限制的需求,经过思索后准备利用爬虫技术来实现,即在熊孩子放学时自动登录网管交换机来对机顶盒进行限速,...
  • python自动下载小说

    万次阅读 多人点赞 2020-01-06 12:19:56
    **爬虫三连:获取网页,解析网页,保存目标** 刚到公司还没坐下,我旁边的IOS同学就悄悄告诉我项目出了BUG,并给我投来了一个神秘的微笑。。。 在我吃完早餐,喝完开水,上完厕所之后,手终于没那么抖了,慢慢的...
  • 在日常工作中常常需要重复填写某些...webdriver是python的selenium库中的一个自动化测试工具,它能完全模拟浏览器的操作,无需处理复杂的request、post,对爬虫初学者十分友好。一、环境配置python3.6+selenium库+...
  • (一)PYTHON的安装(已安装,可跳过此不步骤) 1、PYTHON下载 PYTHON官网:https://www.python.org/ 按照对应的系统下载,我这里是window系统,点击windows,根据自己系统操作位数下载 ...
  • 直接入正题---Python selenium自动控制浏览器对网页的数据进行抓取,其中包含按钮点击、跳转页面、搜索框的输入、页面的价值数据存储、mongodb自动id标识等等等。 1、首先介绍一下Python selenium ---自动化测试...
  • 初识python自动登录网页

    千次阅读 2014-07-08 15:55:26
    学校的3a限制流量,每个月只有10g,怎么能够用了,看了一下,校园网登录的网页,发现可以用强大的python来模拟登录,从而可以破解其他人的账号。。。很不道德的样子,其实我没怎么用其他人的流量,只是看一下能不能...
  • Python爬取网页数据

    万次阅读 多人点赞 2018-08-29 17:20:35
    都说python网页数据方便,我们今天就来试试,python爬取数据到底有多方便 简介 爬取数据,基本都是通过网页的URL得到这个网页的源代码,根据源代码筛选出需要的信息 准备 IDE:pyCharm 库:requests、...
  • python自动输入

    万次阅读 多人点赞 2018-05-23 23:09:11
    首先,我们的目的是用python做一个自动输入,控制的程序,能用的地方也很少。我是最近在登一些学校的网站的时候要用到一些信息,来回的输入又很麻烦,就在网上找了这样一个功能的python库吧,叫做——pyautogui。好...
  • 使用Python爬虫示例-自动下载网页音频文件使用库目标网站获取并解析网页源代码访问下载链接 使用库 requests 用来发送http请求。 BeautifulSoup 一个灵活又方便的网页解析库,处理高效,支持多种解析器。 利用它就...
  • 使用python 自带的工具库,可以直接打开浏览页面,本程序...用途:可以用于一些重复打开网页的工作,刷点击率的。 缺点:由于有的网页可能会限制IP,因此本程序可能并不能增加访问量或者点击率,可以通过代理来实现。
  • 各种各样的网站在我们日常工作和学习中占据着举足轻重的地位,学习、影音娱乐、查询资料、协同办公,越来越多的任务都被迁移到浏览器因此,网页也蕴含着很多有价值、我们能够用得到的资源例如,数据、...
  • # 点击页面元素 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 != ''...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 38,357
精华内容 15,342
关键字:

python自动点击网页

python 订阅