自动登录抽屉网
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)
来源:https://www.cnblogs.com/TuLie-cs/p/11046540.html