Python

一. Python 数据分析

  1. 基础 廖雪峰
  2. 利用python进行数据分析 读书笔记 博客园
  3. 利用Python进行数据分析 第2版 apache
  4. 利用Python进行数据分析 第2版 github
  5. 利用Python进行数据分析 第2版 简书

二. Python Selenium driver

conda install selenium

使用anaconda, 下载好后丢入anaconda3\Scripts文件夹下就可以了

  1. Edge driver:
    (1.查看edge 版本; 2.下载driver: https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver) Edge driver
from selenium import webdriver

driver = webdriver.Edge()  #Edge
# driver = webdriver.Edge('C:\Program Files (x86)\Microsoft\Edge Dev\Application\msedge.exe') #MsEdge
driver.get("https://www.baidu.com/")
  1. Chrome
    (1.查看Chrome版本; 2.下载driver: http://chromedriver.storage.googleapis.com/index.html)
from selenium import webdriver
#启动浏览器
driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
  1. FireFox
    (1.查看FireFox版本; 2.下载driver:https://github.com/mozilla/geckodriver/releases
from selenium import webdriver

driver = webdriver.Firefox()
driver.get("https://www.baidu.com/")
  1. Safari
from selenium import webdriver

driver = webdriver.Safari()
driver.get("https://www.baidu.com/")

参考: Selenium+WebDriver 各浏览器驱动下载与使用


1.表单填充
# 找到用户名输入用户名
user = drive.find_element_by_name("LoginForm[username]")
user.send_keys(username)

# 找到密码输入密码
pwd=drive.find_element_by_id("LoginForm_password")
pwd.send_keys(password)

# 点击登录按钮实现登录
drive.find_element_by_class_name("login_btn").click()



2.窗口句柄: 就是浏览器上方每一个Tab名字
#获取当前窗口所有句柄
handles = drive.window_handles

#通过句柄 切换到第1个标签页
drive.switch_to.window(handles[0])


"""操作完成"""
#关闭当前窗口
driver.close()

3.url加载和获取
#url加载
drive.get(url)

# 获取当前页面url并断言
currentPageUrl = driver.current_url


#4.cookie处理
driver.get("http://www.baidu.com")
cookier = {'name':'foo','value':'bar'}
driver.add_cookie(cookie)#添加cookie信息
driver.get_cookies()#获取cookie信息

#等待方式: 现在很多网站采用 Ajax技术无法确定网页元素什么时候能被完全加载所以网页元素的选取比较困难,
#        此时就需要设置等待(等待网页加载完成)
#1.显式等待:条件触发式等待,直到设置的某一条件达成时才会继续执行.可以设置超时时间,
#         如果超过超时时间元素依然没被加载,就会抛出异常
#selenium提供了一些内置的用于显示等待的方法,位于expected_conditions类中
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome()
driver.get('http://www.baidu.com')
try:

WebDriverWait(self.driver,10).until(EC.presence_of_element_located(By.ID,"LoginForm[username]")) #webDriverWait默认会500ms检测一下元素是否存在
except:
  print('%s页面未找到元素'% loc)



#2.隐式等待: 在尝试定位某个元素时,如果没能立刻发现,就等待固定时长,类似于socket超时,默认设置是0秒,即相当于最长等待时长
#在浏览器界面直观感受是:等待直到网页加载完成(地址栏这个地方不是× 变成如下)时继续执行,网页加载超过设置等待时长才报错使用方法
from selenium import webdriver

driver = webdriver.Chrome()
driver.implicitly_wait(1) #设置最大等待时长 1 秒
driver.get('http://www.baidu.com')
driver.find_element_by_id('kw').send_keys('selenium') #输入关键词
driver.find_element_by_id('su').click() # 点击"百度一下"按钮

#3.线程随机休眠
time.sleep(random.uniform(4,5))

#加载应用扩展程序
chrome_options.add_extension(extension_path)
#添加下载路径,不弹框确认
prefs = {'profile.default_content_settings.popups': 0, 'download.default_directory':tmp_path}
chrome_options.add_experimental_option('prefs', prefs)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值