爬虫_015_selenium

selenium可以驱动真实的浏览器进行执行json代码

一、元素定位

        1.导入selenium

from selenium import webdriver

        2.创建浏览器操作对象

from selenium import webdriver


driver = webdriver.Chrome()

        3.驱动浏览器访问网址

url = 'http://www.jd.com'
driver.get(url)
print(driver.page_source)  # page_source 获取网页源码

selenium的元素定位

        导入selenium.webdriver.common.by

from selenium.webdriver.common.by import By

        驱动浏览器

browser = webdriver.Chrome()
url = 'https://www.baidu.com'
browser.get(url)

find_element('by', 'value') 

        1.根据id找对象【定位百度一下】

button = browser.find_elements('id', 'su')
button = browser.find_element(By.ID, 'su')
# 两者都可以
print(button)
# [<selenium.webdriver.remote.webelement.WebElement (session="edf29a1ad4c90ddb4f6077c66284bd58", element="A736AF8672F68D0590C330DDB872F1AF_element_5")>]

         2.根据标签属性的属性值找对象【定位文本输入框】

button = browser.find_elements('name', 'wd')
button = browser.find_element(By.NAME, 'wd')
# 两者都可以
print(button)
# [<selenium.webdriver.remote.webelement.WebElement (session="9429e100f76aaf970a9840adb2e7711b", element="74AEEB6495876A4AAB2CDB9208428414_element_4")>]

        3.find方法的xpath 根据xpath路径获取对象【写xpath路径--定位百度一下】

button = browser.find_element('xpath', '//input[@id="su"]')
button = browser.find_element(By.XPATH, '//input[@id="su"]')
# 两个都可以
print(button)
# <selenium.webdriver.remote.webelement.WebElement (session="a2a460905719e7e148dfe3a641f2e719", element="72BC4533B5E8319E53F8ADA5BF298D9D_element_5")>

        4.tag_name方法根据标签名获取对象【标签名--定位文本输入框】

button = browser.find_element(By.TAG_NAME, 'input')
button = browser.find_element('tag name', 'input')
# 两者都可以
print(button)
# <selenium.webdriver.remote.webelement.WebElement (session="3e13c5d62abd423f248cc7c6decb4d49", element="1177DE5CC74B047E9CB0CB43676F9F90_element_5")>

        5.find方法的css方法--根据bs4的语法实现【定位百度一下】

button = browser.find_element('css selector', '#su')
button = browser.find_element(By.CSS_SELECTOR, '#su')
# 两者都可以
print(button)
# <selenium.webdriver.remote.webelement.WebElement (session="0907924538d85046e1dc6b50784ab740", element="9D5FC07B4F10F71176AA28B95B478F7C_element_6")>

        6.获取当前页面的链接文本

button = browser.find_element('link text', '新闻')
button = browser.find_element(By.LINK_TEXT, '新闻')
# 两者都可以
print(button)
# <selenium.webdriver.remote.webelement.WebElement (session="d3b569cc0f0e01c19c81e9c37b433923", element="6ED663DDA56A80DFC04F85B235E6C852_element_2")>

二、selenium元素信息

        1.获取元素属性【获取input标签的class值】

button = browser.find_element('id', 'su')
print(button.get_attribute('class'))
# bg s_btn

        2.获取元素标签名

button = browser.find_element('id', 'su')
print(button.tag_name)
# input

        3.获取元素文本【获取的并非标签里的value值,而是显示在  ><  中间的文本】

button = browser.find_element('id', 'su')
print(button.text)
# 获取新闻这两个字
a = browser.find_element(By.LINK_TEXT, '新闻')
print(a.text)
#
# 新闻

三、selenium的交互

        直接上案例

from selenium import webdriver
from selenium.webdriver.common.by import By
import time

# 驱动浏览器
browser = webdriver.Chrome()

# 定义访问的网站【eg:百度】
url = 'https://www.baidu.com'

# 跳转到指定的url
browser.get(url)

# 休眠2s
time.sleep(2)

# 定位文本输入框
input = browser.find_element('id', 'kw')
time.sleep(2)
# 输入’周杰伦‘
input.send_keys('周杰伦')

time.sleep(2)
# 定位百度一下
button = browser.find_element('id', 'su')
# 点击百度一下
button.click()

time.sleep(2)
# 将浏览器滑到底部【固定写法】
bottom = 'document.documentElement.scrollTop=100000'
browser.execute_script(bottom)

time.sleep(2)
# 定位下一页的按钮
next = browser.find_element('xpath', '//a[@class="n"]')
# 点击下一页
next.click()

time.sleep(2)
# 返回上一页
browser.back()

time.sleep(2)
# 再返回下一页
browser.forward()

time.sleep(2)
# 退出
browser.quit()

个人觉得对我自己有用的链接

http://t.csdn.cn/ZVnDS【侵权请联系我,我会删除】

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值