爬虫基础06—selenium

目录 

1.selenium概述 

2. python安装selenium 

 3. 下载安装chromedriver:(谷歌驱动)

 4.利用驱动自动化操作浏览器:

(4.1)driver.find_element_by_id('kw')  #根据id找到元素 

(4.2)利用 driver.find_element_by_xpath()  #根据xpath找到元素

5.键盘事件

6. 利用"百度一下"按钮的xpath,制造点击事件(点击事件)

7.实例:实现自动化浏览王者荣耀多页面信息(滚屏事件)



1.selenium概述 

 

2. python安装selenium 

 pip install selenium==2.48.0 -i https://pypi.tuna.tsinghua.edu.cn/simple

 

 3. 下载安装chromedriver:(谷歌驱动)

网址:http://npm.taobao.org/mirrors/chromedriver/

 

 4.利用驱动自动化操作浏览器:

# driver.find_element_by_id()  #根据id找到元素
# driver.find_element_by_xpath()  #根据xpath找到元素
# driver.find_element_by_class_name()  #根据类名找到元素
# driver.find_element_by_link_text()  #根据链接名找到元素
# driver.find_element_by_partial_link_text() #根据部分链接名找到元素
# driver.find_element_by_tag_name() #根据据标签找到元素
# driver.find_element_by_css_selector() #根据css选择器到元素

(4.1)driver.find_element_by_id('kw')  #根据id找到元素 

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

driver = webdriver.Chrome(executable_path="chromedriver") #设置驱动
driver.get(url='https://www.baidu.com')

tag = driver.find_element_by_id('kw')  #根据id找到元素(如图1)
tag.clear()
tag.send_keys('坂井泉水')  # 输入事件
tag.send_keys(Keys.ENTER) #键盘事件
time.sleep(5)

 实现了如下自动搜索:

(4.2)利用 driver.find_element_by_xpath()  #根据xpath找到元素

from selenium import webdriver

driver = webdriver.Chrome(executable_path="chromedriver") #设置驱动
driver.get(url='https://www.baidu.com')

tag=driver.find_element_by_xpath('//*[@id="s-top-left"]/a[5]').click() #由路径可自行实现点击事件

需求:爬取打印百度导航栏文字

 

 又由于:

 故:

from selenium import webdriver
driver = webdriver.Chrome(executable_path="chromedriver") #设置驱动
driver.get(url='https://www.baidu.com')

tags = driver.find_elements_by_xpath('//*[@id="s-top-left"]/a[@href]')
for tag in tags:
    print(tag.text)

说明:蓝色部分即取出a标签下href属性的那部分内容,即:

5.键盘事件

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
from bs4 import BeautifulSoup as BS

driver = webdriver.Chrome(executable_path="chromedriver") #设置驱动
driver.get(url='https://www.baidu.com')

tag = driver.find_element_by_id('kw')  #根据id找到元素
tag.clear()
tag.send_keys('坂井泉水')  # 输入事件
tag.send_keys(Keys.ENTER) #键盘事件
time.sleep(5)

soup = BS(driver.page_source,'html.parser') #页面解析

results = soup.find_all('div',class_='c-container')
for i in results:
    print("*"*100)
    print(i.h3.a.attrs['href'])


6. 利用"百度一下"按钮的xpath,制造点击事件(点击事件)

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

driver = webdriver.Chrome(executable_path="chromedriver") #设置驱动
driver.get(url='https://www.baidu.com')

tag = driver.find_element_by_xpath('//*[@id="kw"]')

tag.clear()
tag.send_keys('坂井泉水')  # 输入事件
driver.find_element_by_xpath("//*[@id='su']").click()  
 #代替tag.send_keys(Keys.ENTER) #键盘事件
time.sleep(5)

7.实例:实现自动化浏览王者荣耀多页面信息(滚屏事件)

 实现内容如下:

 

from selenium import webdriver
import time

driver = webdriver.Chrome(executable_path="chromedriver")  #设置浏览器驱动
driver.maximize_window()  #窗口最大化
driver.get(url='http://news.4399.com/gonglue/wzlm/yingxiong/') #网页链接
#声明浏览器高度
height = 0
for i in range(1,6):
    js = 'var q=document.documentElement.scrollTop=%d' % height
    height += 800
    time.sleep(1)
    driver.execute_script(js)
    driver.find_element_by_xpath('//*[@id="hero_more"]/a').click()
    time.sleep(1)

注意:

(1) driver.maximize_window()  #窗口最大化
(2)driver.get(url='http://news.4399.com/gonglue/wzlm/yingxiong/') #网页链接

(3)#声明浏览器高度
height = 0
for i in range(1,6):
    js = 'var q=document.documentElement.scrollTop=%d' % height
    height += 800
    time.sleep(1)
    driver.execute_script(js)
    driver.find_element_by_xpath('//*[@id="hero_more"]/a').click()

    #此步模拟了“点击查看更多”这一个点击事件
    time.sleep(1)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Top Secret

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值