前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2018年python3与selenium教程第1节selenium 初体验声明浏览器访问页面查找节点多节点查找节点交互

2018年python3与selenium教程第1节selenium 初体验声明浏览器访问页面查找节点多节点查找节点交互

作者头像
章鱼喵
发布2018-09-26 18:01:59
8390
发布2018-09-26 18:01:59
举报
文章被收录于专栏:codingcoding

相关环境搭建请参照mac 搭建selenium与ChromeDriver环境

selenium 初体验

selenium自动获取百度搜索结果

源码:

代码语言:javascript
复制
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait

browser = webdriver.Chrome()
try:
    browser.get('https://www.baidu.com')
    input = browser.find_element_by_id('kw')
    input.send_keys('Python爬虫')
    input.send_keys(Keys.ENTER)
    wait = WebDriverWait(browser, 10)
    wait.until(EC.presence_of_all_elements_located((By.ID, 'content_left')))
    print(browser.current_url)
    print(browser.get_cookies())
    print(browser.page_source)
finally:
    browser.close()

自动调用浏览器

与此同时,终端会将获取到的结果都打印出来

声明浏览器

selenium支持多个浏览器,声明浏览器的方式如下:

源码:

代码语言:javascript
复制
from selenium import webdriver
browser = webdriver.Chrome() # 声明 chrome
browser = webdriver.Firefox() # 声明 Firefox

访问页面

源码:

代码语言:javascript
复制
from selenium import webdriver

browser = webdriver.Chrome() # 声明浏览器
browser.get('https://www.baidu.com') # 访问网页
print(browser.page_source) # 将源码打印到终端
browser.close() # 关闭浏览器

运行脚本,会看到程序自动打开浏览器访问百度,并将源码输出到了终端

查找节点

获取知乎的搜索框节点

搜索框

源码

源码:

代码语言:javascript
复制
from selenium import webdriver

browser = webdriver.Chrome() # 声明浏览器
browser.get('https://www.zhihu.com') # 访问网页
search_input = browser.find_element_by_id('Popover1-toggle') # 查找节点
print(search_input)
browser.close() # 关闭浏览器

结果

代码语言:javascript
复制
☁  crawler  python3 test_selenium.py
<selenium.webdriver.remote.webelement.WebElement (session="bec64b422b99b683ea64133e6e4002d4", element="0.4626614526678319-1")>

通过pycharm,进入browser.find_element_by_id源码,可看到还有多种方式能获取节点

节点查找方法

多节点查找

多节点

源码:

代码语言:javascript
复制
from selenium import webdriver

browser = webdriver.Chrome() # 声明浏览器
browser.get('http://36kr.com/') # 访问网页
lis = browser.find_elements_by_class_name('radius') # 根据类名查找节点
print(lis)
browser.close() # 关闭浏览器

执行结果

节点交互

需求:打开百度首页,在搜索框输入“三体“,然后清空搜索框,再输入“球状闪电”,最后点击搜索按钮

相当于模拟用户的真实操作

百度搜索框

源码:

代码语言:javascript
复制
from selenium import webdriver
import time

browser = webdriver.Chrome() # 声明浏览器
browser.get('https://www.baidu.com') # 访问网页
search_input = browser.find_element_by_id('kw') # 获取搜索框
search_input.send_keys('三体') # 将文字填充到搜索框
time.sleep(2)
search_input.clear() # 清空搜索框
search_input.send_keys('球状闪电')
submit = browser.find_element_by_id('su') # 获取提交按钮
submit.click() # 点击提交按钮
time.sleep(2)
browser.close() # 关闭浏览器

节点交互

更多的节点交互请查看官方文档

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.08.30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • selenium 初体验
  • 声明浏览器
  • 访问页面
  • 查找节点
  • 多节点查找
  • 节点交互
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档