自动登录抽屉网
from selenium import webdriver import time driver = webdriver.Chrome() driver.maximize_window() try: driver.get('https://dig.chouti.com/') driver.implicitly_wait(10) time.sleep() login_bin = driver.find_element_by_id('login_btn') login_bin.click() time.sleep(2) phone = driver.find_element_by_class_name('login-phone') phone.send_keys('17718268511') pwd = driver.find_element_by_class_name('pwd-password-imput') pwd.send_keys('tututu') login_submit = driver.find_element_by_class_name('btn-large') login_submit.click() time.sleep(20) #捕获异常并打印 except Exception as e: print(e) finally: driver.close()
selenuim选择器之Xpath
from selenium import webdriver driver = webdriver.Chrome() try: driver.get('https://doc.scrapy.org/en/latest/_static/selectors-sample1.html') driver.implicitly_wait(5) 根据Xpath语法查找元素 /从根节点开始找第一个 html = driver.find_element_by_xpath('/html') print(html.tag_name) #//从根节点找任意一个节点 div = driver.find_element_by_xpath('//div') print(div.tag_name) #@ #查找id为images的div节点 div = driver.find_element_by_xpath('//div[@id="images"]') print(div.tag_name) print(div.text) #找到一个a节点 a = driver.find_element_by_xpath('//a') print(a.tag_name) #找到所有a节点 a_s = driver.find_elements_by_xpath('//a') print(a_s) #找到第一个a节点的href属性 a = driver.find_element_by_xpath('//a').get_attribute('href') print(a) finally: driver.close() 找到所有a节点 ''' 添加cookie ''' from selenium import webdriver driver = webdriver.Chrome() import time try: driver.implicitly_wait(10) driver.get('https://www.zhihu.com/explore') print(driver.get_cookie()) time.sleep(10) finally: driver.close() ''' # # 选项卡 # # ''' import time from selenium import webdriver browser = webdriver.Chrome() try: browser.get('https://') finally: browser.close() ''' 前进、后退 ''' from selenium import webdriver import time driver = webdriver.Chrome() try: driver.implicitly_wait(10) driver.get('https://www.jd.com/') driver.get('https://www.baidu.com/') driver.get('https://www.cnblogs.com/') time.sleep(2) # 回退操作 driver.back() time.sleep(1) # 前进操作 driver.forward() time.sleep(1) driver.back() time.sleep(10) finally: driver.close()
selenium剩余操作
'''''' ''' 点击、清除操作 ''' # from selenium import webdriver # from selenium.webdriver.common.keys import Keys # import time # # driver = webdriver.Chrome(r'D:\BaiduNetdiskDownload\chromedriver_win32\chromedriver.exe') # # try: # driver.implicitly_wait(10) # # 1、往jd发送请求 # driver.get('https://www.jd.com/') # # 找到输入框输入围城 # input_tag = driver.find_element_by_id('key') # input_tag.send_keys('围城') # # 键盘回车 # input_tag.send_keys(Keys.ENTER) # time.sleep(2) # # 找到输入框输入墨菲定律 # input_tag = driver.find_element_by_id('key') # input_tag.clear() # input_tag.send_keys('墨菲定律') # # 找到搜索按钮点击搜索 # button = driver.find_element_by_class_name('button') # button.click() # time.sleep(10) # # finally: # driver.close() ''' 获取cookies (了解) ''' # from selenium import webdriver # import time # # driver = webdriver.Chrome(r'D:\BaiduNetdiskDownload\chromedriver_win32\chromedriver.exe') # # try: # driver.implicitly_wait(10) # driver.get('https://www.zhihu.com/explore') # print(driver.get_cookies()) # # time.sleep(10) # finally: # driver.close() ''' 选项卡 ''' #选项卡管理:切换选项卡,有js的方式windows.open,有windows快捷键: # ctrl+t等,最通用的就是js的方式 # import time # from selenium import webdriver # # browser = webdriver.Chrome() # try: # browser.get('https://www.baidu.com') # # # execute_script: 执行javascrpit代码 # # 弹窗操作 # # browser.execute_script('alert("tank")') # # 新建浏览器窗口 # browser.execute_script( # ''' # window.open(); # ''' # ) # time.sleep(1) # print(browser.window_handles) # 获取所有的选项卡 # # 切换到第二个窗口 # # 新: # browser.switch_to.window(browser.window_handles[1]) # # 旧: # # browser.switch_to_window(browser.window_handles[1]) # # # 第二个窗口往淘宝发送请求 # browser.get('https://www.taobao.com') # time.sleep(5) # # # 切换到第一个窗口 # browser.switch_to_window(browser.window_handles[0]) # browser.get('https://www.sina.com.cn') # # time.sleep(10) # finally: # browser.close() ''' ActionChangs动作链 ''' # from selenium import webdriver # from selenium.webdriver import ActionChains # import time # # driver = webdriver.Chrome() # driver.implicitly_wait(10) # driver.get('http://www.runoob.com/try/try.php?filename=jqueryui-api-droppable') # # try: # # # driver.switch_to_frame('iframeResult') # # 切换到id为iframeResult的窗口内 # driver.switch_to.frame('iframeResult') # # # 源位置 # draggable = driver.find_element_by_id('draggable') # # # 目标位置 # droppable = driver.find_element_by_id('droppable') # # # 调用ActionChains,必须把驱动对象传进去 # # 得到一个动作链对象,复制给一个变量 # actions = ActionChains(driver) # # # 方式一: 机器人 # # 瞬间把源图片位置秒移到目标图片位置 # # actions.drag_and_drop(draggable, droppable) # 编写一个行为 # # actions.perform() # 执行编写好的行为 # # # # 方式二: 模拟人的行为 # source = draggable.location['x'] # target = droppable.location['x'] # print(source, target) # # distance = target - source # print(distance) # # # perform:每个动作都要调用perform执行 # # # 点击并摁住源图片 # ActionChains(driver).click_and_hold(draggable).perform() # # s = 0 # while s < distance: # # 执行位移操作 # ActionChains(driver).move_by_offset(xoffset=2, yoffset=0).perform() # s += 2 # # # 释放动作链 # ActionChains(driver).release().perform() # # time.sleep(10) # # # finally: # driver.close() ''' 前进、后退 ''' # from selenium import webdriver # import time # # driver = webdriver.Chrome() # # try: # driver.implicitly_wait(10) # driver.get('https://www.jd.com/') # driver.get('https://www.baidu.com/') # driver.get('https://www.cnblogs.com/') # # time.sleep(2) # # # 回退操作 # driver.back() # time.sleep(1) # # 前进操作 # driver.forward() # time.sleep(1) # driver.back() # time.sleep(10) # # finally: # driver.close()
破解登录
from selenium import webdriver from selenium.webdriver import ChromeOptions import time r''' 步骤: 1、打开文件的查看,显示隐藏文件 2、找到C:\Users\administortra\AppData\Local\Google\Chrome\User Data 删除Default文件 3、重新打开浏览器,并登陆百度账号 - 此时会创建一个新的Default缓存文件 4、添加cookies 5、关闭谷歌浏览器后执行程序 ''' # 获取options对象,参数对象 options = ChromeOptions() # 获取cookies保存路径 # 'C:\Users\administortra\AppData\Local\Google\Chrome\User Data' profile_directory = r'--user-data-dir=C:\Users\administortra\AppData\Local\Google\Chrome\User Data' # 添加用户信息目录 options.add_argument(profile_directory) # 把参数加载到当前驱动中 chrome_options默认参数,用来接收options对象 driver = webdriver.Chrome(chrome_options=options) try: driver.implicitly_wait(10) driver.get('https://www.baidu.com/') ''' BDUSS:***** ''' # 添加用户cookies信息 # name、value必须小写 driver.add_cookie({"name": "BDUSS", "value": "用户session字符串"}) # 刷新操作 driver.refresh() time.sleep(10) finally: driver.close()
爬取京东商品信息
# ''' # 爬取京东商品信息 # # 请求url: # https://www.jd.com/ # 提取商品信息: # 1.商品详情页 # 2.商品名称 # 3.商品价格 # 4.商品评价人数 # 5.商品商家 # ''' # # from selenium import webdriver # from selenium.webdriver.common.keys import Keys # import time # # driver = webdriver.Chrome() # try: # driver.implicitly_wait(10) # #1.往京东发送请求 # driver.get('https://wwww.jd.com/') # # #2.输入商品名称,并回车搜索 # input_tag = driver.find_element_by_id('key') # input_tag.send_keys('macbook') # input_tag.send_keys(Keys.ENTER) # # #3.查找所有商品div # good_list = driver.find_elements_by_class_name('gl-item') # # for good in good_list: # #根据属性选择器查找 # #商品链接 # good_url = good.find_element_by_css_selector( # '.p-img a' # ).get_attribute('href') # # #商品名称 # good_name = good.find_element_by_css_selector( # '.p-name em').text.replace("\n","--") # # # 商品价格 # good_price = good.find_element_by_class_name( # 'p-price').text.replace("\n", ":") # # # 评价人数 # good_commit = good.find_element_by_class_name( # 'p-commit').text.replace("\n", " ") # # # 商品商家 # good_from = good.find_element_by_class_name( # 'J_im_icon').text.replace("\n", " ") # # good_content = f''' # 商品链接:{good_url} # 商品名称:{good_name} # 商品价格:{good_price} # 评价人数:{good_commit} # 商品商家:{good_from} # ''' # print(good_content) # time.sleep(10) # # # finally: # # driver.close() ''' 爬取全部 ''' ''' 爬取京东商品信息 请求url: https://www.jd.com/ 提取商品信息: 1.商品详情页 2.商品名称 3.商品价格 4.商品评价人数 5.商品商家 ''' from selenium import webdriver from selenium.webdriver.common.keys import Keys import time def get_good(driver): try: #通过js控制滚轮滑动获取所有商品信息 js_code = ''' window.scrollTo(0,5000); ''' driver.execute_script(js_code)#执行js代码 #等待数据加载 time.sleep(2) #3.查找所有商品div good_list = driver.find_elements_by_class_name('gl-item') for good in good_list: #根据属性选择器查找 #商品链接 good_url = good.find_element_by_css_selector( '.p-img a' ).get_attribute('href') #商品名称 good_name = good.find_element_by_css_selector( '.p-name em').text.replace("\n","--") # 商品价格 good_price = good.find_element_by_class_name( 'p-price').text.replace("\n", ":") # 评价人数 good_commit = good.find_element_by_class_name( 'p-commit').text.replace("\n", " ") good_content = f''' 商品链接:{good_url} 商品名称:{good_name} 商品价格:{good_price} 评价人数:{good_commit} ''' print(good_content) next_tag = driver.find_elements_by_class_name('pn-next') next_tag.click() time.sleep(2) #递归函数调用 get_good(driver) time.sleep(10) finally: driver.close() if __name__ == '__main__': driver = webdriver.Chrome() driver.implicitly_wait(10) # 1.往京东发送请求 driver.get('https://wwww.jd.com/') # 2.输入商品名称,并回车搜索 input_tag = driver.find_element_by_id('key') input_tag.send_keys('macbook') input_tag.send_keys(Keys.ENTER) time.sleep(2) get_good(driver)