Python爬虫学习之selenium库

目录

一、selenium库的基本使用

二、selenium元素定位

三、selenium元素信息

四、selenium交互


一、selenium库的基本使用

复制代码
#(1)导入selenium
from selenium import webdriver

#(2)创建浏览器操作对象
path = 'chromedriver.exe'

browser = webdriver.Chrome(path)

#(3)访问网站
url = 'https://www.jd.com'

browser.get(url)

#page_source获取网页源码
content = browser.page_source
print(content)

二、selenium元素定位

复制代码
from selenium import webdriver

path = 'chromedriver.exe'

browser = webdriver.Chrome(path)

url = 'http://wwww.baidu.com'

browser.get(url)

#元素定位

#根据id来找到对象(常用)
button = browser.find_element_by_id('su')
print(button)

#根据标签属性的属性值来获取对象
button = browser.find_element_by_name('wd')
print(button)

#根据xpath语句来获取对象(常用)
button = browser.find_element_by_xpath('//input[@id="su"]')
print(button)

#根据标签的名字来获取对象
button = browser.find_elements_by_tag_name('input')
print(button)

#使用的bs4的语法来获取对象(常用)
button = browser.find_elements_by_css_selector('#su')
print(button)

button = browser.find_element_by_link_text('地图')
print(button)

三、selenium元素信息

复制代码
from selenium import webdriver

#访问元素信息
#(1)获取元素属性
#(2)获取元素文本
#(3)获取标签名

path = 'chromedriver.exe'
browser = webdriver.Chrome(path)

url = 'http://www.baidu.com'

browser.get(url)

#(1)获取元素属性
input = browser.find_element_by_id('su')

print(input.get_attribute('class'))   #里面放属性名字

#(2)获取元素文本
A = browser.find_element_by_link_text('新闻')
print(A.text)

#(3)获取标签名
print(input.tag_name)

四、selenium交互

e.g.

复制代码
from selenium import webdriver

#创建浏览器对象
path = 'chromedriver.exe'

browser = webdriver.Chrome(path)

#定义url
url = 'http://wwww.baidu.com'

browser.get(url)

import time
time.sleep(3)

#获取文本框的对象
input = browser.find_element_by_id('kw')

#在文本框中输入Python
input.send_keys('Python')

time.sleep(2)

#获取百度一下的按钮
button = browser.find_element_by_id('su')

#点击百度一下按钮
button.click()

time.sleep(2)

#模拟js滑动  滑动到底部
db_button = 'document.documentElement.scrollTop=100000'
browser.execute_script(db_button)

time.sleep(2)

#获取下一页的按钮的两种方法
#next = browser.find_element_by_css_selector('.n')

next = browser.find_element_by_xpath('//a[@class="n"]')

#点击下一页按钮
next.click()

time.sleep(2)

#回到上一页
browser.back()

time.sleep(2)

#回去
browser.forward()

time.sleep(3)

#退出
browser.quit()
相关推荐
嫂子的姐夫1 分钟前
052-滑块验证码:丰巢登录
爬虫·js逆向·滑块验证码·aes加密
镜子AI2 分钟前
镜子AI案例工程复盘:用Python给GEO效果做抽样检测与置信区间估计
开发语言·人工智能·python
WenGyyyL6 分钟前
从零理解强化学习:为什么 AI 需要 Advantage,而不只是 Reward?
人工智能·python·深度学习·机器学习·nlp
春涧草茶7 分钟前
慢就是快15-1 多进程 多线程
开发语言·python
Yurko131 小时前
原码、反码、补码的快速学习
笔记·学习·其他
云和数据.ChenGuang1 小时前
Python 集合(set)常用函数详解与实战案例
开发语言·python·深度学习·langchain
梯度下降者1 小时前
python在哪些方面有应用,python可以用在哪些方面
人工智能·python·web开发·科学计算·应用领域
烂蜻蜓1 小时前
Pandas入门教程(十二):读取 HTML 表格——read_html 参数详解与网页数据清洗
python·html·pandas
2601_967979121 小时前
Opteryx Python库 macOS版本0.0.0a12
python·macos·1024程序员节·wheel·opteryx·alpha
Yolanda_20222 小时前
PyTorch 线性层nn.Linear底层数学原理
人工智能·pytorch·python