爬虫_selenium


一、selenium

模拟浏览器功能,自动执行网页中的js代码,实现动态加载

1.1 如何安装selenium

(1)查看浏览器版本
在这里插入图片描述
(2)浏览器驱动下载地址

https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/

(3)下载与浏览器对应的驱动
在这里插入图片描述(4)将下载的驱动解压,生成一个.exe文件

在这里插入图片描述
放入pycharm中
在这里插入图片描述
(5)安装selenium

pip install selsnium

在这里插入图片描述

1.2 模拟浏览器

# 导入selenium
from selenium import webdriver
from selenium.webdriver.chrome.service import Service

# 创建浏览器操作对象
path = 'msedgedriver.exe'

browser = webdriver.Edge(path)


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

browser.get(url)

在这里插入图片描述

二、元素

2.1 元素定位

模拟鼠标和键盘来操作这些元素,点击、输入等等。
(1)对名字进行定位
在这里插入图片描述

button = browser.find_element_by_id(‘su’)
print(button)

(2)对文本框进行定位
在这里插入图片描述

button = browser.find_element_by_name(‘wd’)
print(button)

(3)根据xpath语句来获取对象

button = browser.find_elements_by_xpath(‘//input[@id=“su”]’)
print(button)

(4)根据标签的名字来获取对象

button = browser.find_elements_by_tag_name(‘input’)
print(button)

(5)使用的是bs4的语法来获取对象

button = browser.find_elements_by_css_selector(‘#su’)
print(button)

(6)根据链接文本来获取对象

button = browser.find_element_by_link_text(‘地图’)
print(button)

2.2元素信息

(1)获取class的属性值 在get_attribute要传入属性的名字

print(input.get_attribute(‘class’))

(2)获取标签名

print(input.tag_name)

(3)获取元素文本

print(input.text)
a = browser.find_element_by_link_text(‘新闻’)
print(a.text)

2.3交互

模拟真实的浏览器,实现部分操作:

from selenium import webdriver

# 创建浏览器对象
path = 'msedgedriver.exe'
browser = webdriver.Edge(path)

# url
url = 'https://wwww.baidu.com'
browser.get(url)

import time
time.sleep(2)

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

# 在文本框中输入周杰伦
input.send_keys('周杰伦')
time.sleep(2)

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

# 点击按钮
button.click()
time.sleep(2)

# 滑到底部
js_bottom = 'document.documentElement.scrollTop=100000'
browser.execute_script(js_bottom)
time.sleep(2)

# 获取下一页的按钮
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()

三、无界面浏览器

  • phantomjs
  • handless

猜你喜欢

转载自blog.csdn.net/qq_64451048/article/details/128245955