首页 > 编程语言 >Python爬虫之用Selenium做爬虫

Python爬虫之用Selenium做爬虫

时间:2023-03-03 10:59:46浏览次数:39  
标签:webdriver 浏览器 Python selenium Selenium 爬虫 获取 browser

我们在用python做爬虫的时候,除了直接用requests的架构,还有Scrapy、Selenium等方式可以使用,那么今天我们就来聊一聊使用Selenium如何实现爬虫。

Selenium是什么?

Selenium是一个浏览器自动化测试框架,是一款用于Web应用程序测试的工具。框架底层使用JavaScript模拟真实用户对浏览器进行操作。测试脚本执行时,浏览器自动按照脚本代码做出点击,输入,打开,验证等操作,就像真实用户所做的一样,从终端用户的角度测试应用程序。使浏览器兼容性测试自动化成为可能,尽管在不同的浏览器上依然有细微的差别。使用简单,可使用Java,Python等多种语言编写用例脚本。(百度百科)

如何使用Selenium?

首先下载Selenium这个库,pip install selenium。接着查看Selenium支持的浏览器,这里就使用都会有的chrome谷歌浏览器,如果想要查看能用什么浏览器可以使用下面这些代码,就可以看到支持的浏览器和版本:

from selenium import webdriver

help(webdriver)

然后再对应着浏览器的版本找相应的浏览器驱动。

驱动的位置一定要放在没有中文字符的文件夹中,好这个地址,有用。

使用Selenium主要是调用它的webdriver模块,具体操作如下:

from selenium import webdriver
path = '/Users/14163/Downloads/chromedriver_win32/chromedriver.exe'#这里是保存的驱动的位置
browser = webdriver.Chrome(executable_path=path)  #初始化驱动对象

browser.get('http://www.baidu.com')        #获取url
print(browser.page_source)                #输出获取到的文件数据
browser.close()                          #关闭浏览器

结果:

再对比一下requests获取的网页的数据:

很明显selenium能获取得到的内容更多selenium有相应的函数去查找数据,单个元素的三种不同的方式去获取响应的元素,第一种是通过id的方式,第二个中是CSS选择器,第三种是xpath选择器,结果都是相同的。

这里是按id去查找,可以加text或者tag获取里面的内容。

或者可以调用另一个库去获取id,By

先 导入库:

from selenium.webdriver.common.by import By

这样就可以获取网页的数据。

这些只是获取一个元素的,可以获取多个元素加用find_elements即可。

交互操作:

对网页进行操作,比如在百度的搜索框输入孤独的s,然后点击搜索就可以这样:

按以下代码:

from selenium import webdriver
from selenium.webdriver.common.by import By
import time
path = '/Users/14163/Downloads/chromedriver_win32/chromedriver.exe'
browser = webdriver.Chrome(executable_path=path)
browser.get('http://www.baidu.com')
input_first = browser.find_element(By.ID,"kw")
print(input_first)
input_first.send_keys("孤独")
time.sleep(0.1)
button = browser.find_element_by_class_name('s_btn_wr')  #这里获取百度搜索的那个按钮
button.click()# 点击

结果:

在chrome中想要找到对应的按钮的元素或者id,可以点击红圈这个,然后再去移动去原网页,就可以知道结果:

不得不说,selenium真便利。

标签:webdriver,浏览器,Python,selenium,Selenium,爬虫,获取,browser
From: https://www.cnblogs.com/q-q56731526/p/17174747.html

相关文章

  • 轻量级CI/CD发布部署环境搭建及使用_05_安装宿主机环境(jdk、nodejs、maven、python2)
    轻量级CI/CD发布部署环境搭建及使用_05_安装宿主机环境(jdk、nodejs、maven、python2)尽自己的绵薄之力,为开源技术分享添砖加瓦本篇幅较多,请按步骤实验安装,截图中涉及的......
  • 180207 python tqdm进度条的使用
    ​​python的Tqdm模块​CodeOnefromtqdmimporttqdmfromtimeimportsleepforiintqdm(range(1000)):sleep(0.1)passCodeTwofromtqdmimporttqdmfrom......
  • python+playwright 学习-20.文件下载expect_download()
    前言文件下载操作expect_download()当浏览器上下文关闭时,所有属于浏览器上下文的下载文件都会被删除。下载开始后会发出下载事件。下载完成后,下载路径可用:withpage.e......
  • python+playwright 学习-19.监听dialog事件-优雅处理对话框
    前言网页上的alert弹出框你不知道什么时候弹出来,selenium处理alert弹出框的方式是先判断有没alert再处理,并且只能处理这一次。playwright框架可以监听dialog事件,不管......
  • Python爬虫之Scrapy制作爬虫
    前几天我有用过Scrapy架构编写了一篇爬虫的代码案例深受各位朋友们喜欢,今天趁着热乎在上一篇有关Scrapy制作的爬虫代码,相信有些基础的程序员应该能看的懂,很简单,废话不多说......
  • Python数据存储
    在运算过程中,得到的经验和模型都是算法的重要结果。直接把数据输入到对应的地方保证了各个模块之间的隔离。numpy数组保存numpy的强大之处有目共睹.npynumpy.save("f......
  • 爬虫概述
    ###爬虫概述什么是爬虫?-就是通过编写程序,让其模拟浏览上网,然后再互联网中抓取数据的过程。-关键词抽取:-模拟:浏览器就是一个纯天然最原始的一个爬虫工具......
  • 2023年第 14期《Python接口自动化+Playwright 》课程,4月2号开学(课程全面升级!)!
    2023年第14期《python接口web自动化+测试开发》课程,4月2号开学(课程全面升级!)主讲老师:上海-悠悠上课方式:微信群视频在线教学,方便交流本期上课时间:2023年4月2号-2023年......
  • python中读取txt文件?
    numpy.savetxt("filename.txt",a)b=numpy.loadtxt("filename.txt")参考资料:对numpy数据写入文件的方法讲解_python_脚本之家(jb51.net) ......
  • Python 异步: 在 Asyncio 中运行阻塞任务(14)
    阻塞任务是阻止当前线程继续进行的任务。如果在asyncio程序中执行阻塞任务,它会停止整个事件循环,从而阻止任何其他协程继续进行。我们可以通过asyncio.to_thread()和......