selenium用法简介

自动打开百度,并获取网页源码

from selenium import webdriver
browser = webdriver.Chrome()
browser.get('https://www.baidu.com')
print(browser.page_source)  #browser.page_source是获取网页的全部html
browser.close()

自动打开百度,并进行搜索

自动打开百度首页,并输入搜索词“我和我的家乡”,然后再清空,再重新输入“我和我的祖国”,点击查询按钮开始搜索

from selenium import webdriver
import time
browser = webdriver.Chrome()
browser.get('https://www.baidu.com')
input_first = browser.find_element_by_id('kw')
input_first.send_keys('我和我的家乡')
time.sleep(2)
input_first.clear()
input_first.send_keys('我和我的祖国')
time.sleep(2)
button_first = browser.find_element_by_id('su')
button_first.click()
time.sleep(10)
browser.close()

查找元素

单个元素查找

from selenium import webdriver#导入库
browser = webdriver.Chrome()#声明浏览器
url = 'https://www.taobao.com'
browser.get(url)#打开浏览器预设网址
input_first = browser.find_element_by_id('q')
input_two = browser.find_element_by_css_selector('#q')
print(input_first)
print(input_two)

这里我们通过2种不同的方式去获取响应的元素
-第一种是通过id的方式
-第二个中是CSS选择器
结果都是相同的。

常用的查找元素方法:

find_element_by_name
find_element_by_id
find_element_by_xpath
find_element_by_link_text
find_element_by_partial_link_text
find_element_by_tag_name
find_element_by_class_name
find_element_by_css_selector

下面这种方式是比较通用的一种方式:这里需要记住By模块所以需要导入

from selenium.webdriver.common.by import By

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

browser = webdriver.Chrome()
url = 'https://www.taobao.com'
browser.get(url)
input_1 = browser.find_element(By.ID, 'q')
print(input_1)

以上几种方法和上述的方式是通用的,browser.find_element(By.ID,"q")这里By.ID中的ID可以替换为其他几个

执行JavaScript

可以直接调用js方法来实现一些操作,
下面的例子是通过登录知乎然后通过js翻到页面底部,并弹框提示

from selenium import webdriver
browser = webdriver.Chrome()
browser.get("http://www.zhihu.com/explore")
browser.execute_script('window.scrollTo(0,document.body.scrollHeight)')
browser.execute_script('alert("To Bottom")')

获取元素属性 和 获取文本内容

get_attribute('class')

from selenium import webdriver
import time
browser = webdriver.Chrome()
from selenium import webdriver
import time

browser = webdriver.Chrome()
browser.get("https://www.sohu.com/a/428468655_161795?spm=smpc.home.top-news4.6.1604105554836TJovvwq&_f=index_news_17")
wenzhang = browser.find_element_by_id('mp-editor')
print(wenzhang.text )
print(wenzhang.get_attribute('class'))   

time.sleep(2)
browser.quit()

官方白皮书
https://selenium-python.readthedocs.io/index.html
参考文献:selenium库的基本使用
https://www.jianshu.com/p/3aa45532e179

posted on 2020-10-31 09:37  耀扬  阅读(180)  评论(0编辑  收藏  举报

导航