selenium 使用

时间:2022-10-13 04:11:37

selenium

  • selenium:可以让浏览器完成相关自动化的操作
  • 环境安装:
    • pip install selenium
  • 编码流程:
    • 导包
    • 创建某一款浏览器对象
    • 制定相关的行为动作
from selenium import webdriver
from time import sleep
bro = webdriver.Chrome(executable_path=r'C:\Users\old-boy\Desktop\爬虫+数据\爬虫_day04\chromedriver.exe')
sleep(3)
bro.get('https://www.baidu.com/')
sleep(3)
#find系列的函数可以帮助我们定位到相关的标签
text_input = bro.find_element_by_id('kw')
#向文本框中录入一个关键字
text_input.send_keys('中国')
sleep(3)
btn = bro.find_element_by_id('su')
btn.click()
sleep(3)
#获取当前浏览器显示的页面源码数据(动态加载的数据)
page_text = bro.page_source
print(page_text)
bro.quit()
#爬取更多的电影详情数据(豆瓣)
bro = webdriver.Chrome(executable_path=r'C:\Users\old-boy\Desktop\爬虫+数据\爬虫_day04\chromedriver.exe')
bro.get('https://movie.douban.com/typerank?type_name=%E7%88%B1%E6%83%85&type=13&interval_id=100:90&action=')
sleep(3)
bro.execute_script('window.scrollTo(0,document.body.scrollHeight)')
sleep(3)
bro.execute_script('window.scrollTo(0,document.body.scrollHeight)')
sleep(3)
bro.execute_script('window.scrollTo(0,document.body.scrollHeight)')
#获取浏览器当前的页面源码数据
page_text = bro.page_source with open('douban.html','w',encoding='utf-8') as fp:
fp.write(page_text)
sleep(3)
bro.quit()

phantomJs:浏览器(无可视化界面)

#爬取更多的电影详情数据(豆瓣)
bro = webdriver.PhantomJS(executable_path=r'C:\Users\old-boy\Desktop\爬虫+数据\tools\phantomjs-2.1.1-windows\bin\phantomjs.exe')
bro.get('https://movie.douban.com/typerank?type_name=%E7%88%B1%E6%83%85&type=13&interval_id=100:90&action=')
sleep(3)
bro.save_screenshot('./1.png')
bro.execute_script('window.scrollTo(0,document.body.scrollHeight)')
sleep(3)
bro.execute_script('window.scrollTo(0,document.body.scrollHeight)')
sleep(3)
bro.execute_script('window.scrollTo(0,document.body.scrollHeight)')
bro.save_screenshot('./2.png')
#获取浏览器当前的页面源码数据
page_text = bro.page_source with open('douban.html','w',encoding='utf-8') as fp:
fp.write(page_text)
sleep(3)
bro.quit()

谷歌无头浏览器

from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu') bro = webdriver.Chrome(executable_path=r'C:\Users\old-boy\Desktop\爬虫+数据\爬虫_day04\chromedriver.exe',chrome_options=chrome_options)
sleep(3)
bro.get('https://www.baidu.com/')
sleep(3)
#find系列的函数可以帮助我们定位到相关的标签
text_input = bro.find_element_by_id('kw')
#向文本框中录入一个关键字
text_input.send_keys('中国')
sleep(3)
btn = bro.find_element_by_id('su')
btn.click()
sleep(3)
#获取当前浏览器显示的页面源码数据(动态加载的数据)
page_text = bro.page_source
print(page_text)
bro.quit()

登录qq空间

bro = webdriver.Chrome(executable_path=r'C:\Users\old-boy\Desktop\爬虫+数据\爬虫_day04\chromedriver.exe')
bro.get('https://qzone.qq.com/')
sleep(3)
#注意:如果想要通过find系列函数去定位某一个iframe标签下的子标签的话,一定要使用如下操作:
bro.switch_to.frame('login_frame')#参数表示的是iframe标签的id属性值 bro.find_element_by_id('switcher_plogin').click()
sleep(3) bro.find_element_by_id('u').send_keys('592888935')
bro.find_element_by_id('p').send_keys('hmw112626')
sleep(3)
bro.find_element_by_id('login_button').click()
print(bro.page_source)
sleep(3)
bro.quit()