您当前的位置: 首页 >  selenium

黑马蓝汐

暂无认证

  • 1浏览

    0关注

    89博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

爬虫中selenium提取数据

黑马蓝汐 发布时间:2021-11-23 21:55:16 ,浏览量:1

每日分享:

一个人的行为和品格。能够给另一个人带来的心灵的震撼和扭转,是这个世界上最强大的力量吧,它唤醒了朴福子心底尚存的良知

  • 了解driver对象的常用属性和方法
  • 掌握driver对象定位标签元素获取标签对象的方法
  • 掌握标签对象提取文本和属性值的方法
一、driver对象的常用属性和方法

在使用selenium过程中,实例化driver对象后,driver对象有一些常用的属性和方法

  1. driver.page_source:当前标签页浏览器渲染之后的网页代码
  2. driver.current_url:当前标签页的url(响应对应的url)
  3. driver.close():关闭当前标签页,如果只有一个标签页则关闭整个浏览器
  4. driver.quit():关闭浏览器
  5. driver.forward():页面前进
  6. driver.back():页面后退
  7. driver.save_screenshot(img_name):页面截图
  8. driver.title:页面标题
from selenium import webdriver

url = 'http://www.baidu.com'
# 创建一个driver对象
driver = webdriver.Chrome()
# 发送请求
driver.get(url)

print(driver.page_source)
print(driver.current_url)
print(driver.title)
driver.get('http://www.douban.com')
driver.back()
driver.forward()
driver.save_screenshot('douban.png')
# driver.close()
driver.quit()



部分结果如下:

 豆瓣截图如下:

二、driver对象定位标签元素获取标签对象的常用方法

 find_element():

定位到的是一个对象,定位不到则报错

find_elements():

定位到则是一个含有元素的列表,定位不到则是一个空列表

2.1 find_element()
from selenium import webdriver

url = 'http://www.baidu.com'
driver = webdriver.Chrome()
driver.get(url)
# 通过xpath进行元素定位(copy->xpath)
# driver.find_element('xpath', '//*[@id="kw"]').send_keys('python')
# 通过css选择器进行元素定位(copy->selector)
# driver.find_element('css selector', "#kw").send_keys('python')
# 通过name属性值进行元素定位
# driver.find_element('name', 'wd').send_keys('python')
# 通过class属性值进行元素定位
# driver.find_element('class name', 's_ipt').send_keys('python')
# 通过id值进行元素定位
# driver.find_element('id', 'su').click()
# 通过链接文本进行元素定位
# driver.find_element_by_partial_link_text()
# driver.find_element('link text', 'hao123').click()
# 只搜索一部分就可以点进链接,是link text的高级版
driver.find_element('partial link text', 'hao').click()

下图箭头所指为链接文本:

2.2 find_elements()
from selenium import webdriver

url = 'https://tieba.baidu.com/f?ie=utf-8&kw=%E6%9E%97%E5%A4%95&fr=search'
driver = webdriver.Chrome()
driver.get(url)
el_list = driver.find_elements('xpath', '//*[@id="thread_list"]/li/div/div[2]/div[1]/div[1]/a')
for el in el_list:
    print(el)

结果: 

三、标签对象提取文本内容和属性值

find_element仅仅能够获取元素,不能直接获取其中的数据,如果需要获取数据需要使用以下方法

  • 对元素执行点击操作element.click()
    • 对定位到的标签对象进行点击操作
  • 向输入框输入数据element.send_keys(data)
    • 对定位到的标签对象输入数据
  • 获取文本element.text
    • 通过定位获取的标签对象的text属性,获取文本内容
  • 获取属性值element.get_attribute(‘属性名’)
    • 通过定位获取的标签对象的get_attribute函数,传入属性名来获取属性的值
from selenium import webdriver

url = 'https://tieba.baidu.com/f?ie=utf-8&kw=%E6%9E%97%E5%A4%95&fr=search'
driver = webdriver.Chrome()
driver.get(url)
el_list = driver.find_elements('xpath', '//*[@id="thread_list"]/li/div/div[2]/div[1]/div[1]/a')
for el in el_list:
    print(el.text, el.get_attribute('href'))

结果:

关注
打赏
1643043582
查看更多评论
立即登录/注册

微信扫码登录

0.0351s