(一)如何让selenium爬我们需要的东西

简介: (一)如何让selenium爬我们需要的东西


文章目录


前言

本博客会以艺龙旅游网为对象,进行selenium的学习

由于区区在下在学校参加了一个名为创新创业工作室的地方,所以今天老师召集我们给我们开了个会,让我们对他们的网站做补充,缺少资料。(因为他不会做爬虫对某种信息进行实时性爬取,我怀疑网站也是别人给他做的)

image.png


所以有些体力活需要我们去做:手动将数据从某网站下载,然后通过某网站对坐标进行处理,然后进入网站后台将数据存储(手动一个一个打)。

image.png


但是我通过对网站进行分析,发现如果单纯使用requests话,就只能爬取一页的数据,不能翻页(因为翻页url是不变的),所以我就想到了selenium,但是我又不会用,那就一起来学习一下吧。

image.png


确定目标:http://www.elong.com/

目的:爬取艺龙网中南阳市唐河县的酒店信息,包括:名字,电话,标间价格,地址,介绍,图片

image.png


selenium在python中的使用


1.了解selenium

Selenium是一个用于测试网站的自动化测试工具,支持各种浏览器包括Chrome、Firefox、Safar等浏览器(需要下载驱动),之前是用来做测试网站的,后来发现也可以用来爬取数据(估计开发者都没想到他开发的selenium被别人广泛适用于爬虫领域——笑)。


2.selenium的下载

我这里是使用的Chrom浏览器 !注意不要忽视这个地方

  1. python中selenium库的下载(pycharm系列)由于我用的pycharm的虚拟环境,所以我只需要在pycharm的终端下载第三方库就行了,简单,方便,pycharm真是个好用的东西——O(∩_∩)O~
  1. 打开pycharm
  2. 打开pycharm的终端
  3. 输入pip install selenium -i https://pypi.doubanio.com/simple (这是使用国内镜像网站下载selenium,下载速度较快)
  4. 等待片刻,结束
  5. pip list ——查看自己下载的第三方库,检查是否成功
  1. python中selenium库的下载(cmd系列)
  1. win+R输入cmd
  2. 打开cmd
  3. 输入pip install selenium -i https://pypi.doubanio.com/simple (这是使用国内镜像网站下载selenium,下载速度较快)
  4. 等待片刻,结束
  5. pip list ——查看自己下载的第三方库,检查是否成功
  1. selenium驱动的下载(这里我直接给云盘链接,官网都是英文,看不懂)
  1. 打开你的Chrom浏览器查看你是什么版本的(帮助->about chrom),查看版本号
  2. 点击右边这个蓝色的小可爱,没错我是小可爱 ,找到与你的chrom浏览器版本相匹配的(没有匹配的,相近的也可以,win都是32位的),下载
  3. 没了,没错,你没看错,真的没了
  1. selenium的环境配置,没错又是这个烦人的环境配置 真想给他一脚
  1. 想必,这个时候已经下载好了吧
  2. 下载好以后,很简单,解压,然后——看3
  3. 最好(但是不是必要)创建一个文件夹放你解压出来的geckodriver,然后复制你这个文件当前的路径(ctrl + c)
  4. 打开环境变量(此电脑->右键->属性->高级系统配置->环境变量),在系统变量找到path,新建,ctrl + v
  5. 完事
  1. 打开你的pycharm,新建一个py文件去写出以下代码
from selenium import webdriver
import time
# 导入时间包和selenium包
huohu = webdriver.Chrome()
# 创建一个chome的selenium对象
huohu.get("http://www.elong.com/")
# 打开网站
huohu.quit()
# 退出

写好后,运行

好,报错了,对,报错了,可能你们不会报错,反正我报错了

报错信息是:selenium.common.exceptions.WebDriverException: Message: ‘chromedriver’ executable needs to be in PATH.

意思是,你需要吧chromdriver放到路径,我照着做了,可是呢,还是这个报错!

image.png

这是什么情况??明明我是按照教程来的啊

着急的我去群里请求大佬,大佬们直接无视我——::>_<::

然后又去找它——>CSDN,左翻翻,右找找,终于找到了解决方案:

将chromdriver放在python解释器的位置,我照着做了之后,就成功了。。。

好家伙,上面教程不是说随便放的吗?…

哎,人与人之间最基本的信任都没有了

image.png

3. selenium的基本使用

from selenium import webdriver
# 导包
driver = webdriver.Chrome()
# 创建一个浏览器对象
driver.get("https://m.elong.com/")
# 访问艺龙网
driver.quit()
# 关闭浏览器,也可以不关闭,但是最好关闭,养成一个打开后不忘记关闭的好习惯

然后我们就会发现,浏览器界面一闪而过(为什么?因为页面渲染完成后,就直接退出了),那么如何才能让我们能够观察到呢?有请我们的time模块,让它睡会儿,就能观察到了

这样改

from selenium import webdriver
import time
# 导包
driver = webdriver.Chrome()
driver.get("https://m.elong.com/")
time.sleep(5)
# 页面渲染完成后让它睡5s,这样就能观察到了
driver.quit()

OK,看到,代码替我们打开了这个网址,并且展示了5s后关闭了

结语


好了,相信大家已经学会如何使用筷子了,那么让我们去动用我们的筷子去把这个网站抓下来吧——笑,玩个老梗

今天的笔记就到这里了(主要是不想写了,一天当然不可能只学会点这玩意),拜拜


目录
相关文章
|
5月前
|
数据采集 前端开发 JavaScript
被爬网站用fingerprintjs来对selenium进行反爬,怎么破?
闲暇时看到一个问题关于如何应对FingerprintJS的唯一标记技术。FingerprintJS通过收集浏览器特性如Canvas、音频、字体及插件信息生成唯一标识符,用于识别和追踪用户。常见应对策略如使用`stealth.min.js`脚本或虚拟指纹插件有局限性。高级解决方案包括: - **浏览器特征随机化**:如Canvas和音频指纹随机化,动态替换插件和字体。 - **真实用户流量模拟**:模拟自然的鼠标移动与点击、键盘输入节奏。 - **服务端策略**:使用高质量代理IP服务,如青果网络提供的代理IP,结合IP地址轮换、会话管理和合理的切换频率设置。
|
7月前
|
数据采集 JavaScript 前端开发
深度剖析Selenium与Scrapy的黄金组合:实现动态网页爬虫
深度剖析Selenium与Scrapy的黄金组合:实现动态网页爬虫
|
7月前
|
Web App开发 数据采集 JavaScript
【Python爬虫】<万物可爬>Selenium+自动化测试工具 获取数据
【1月更文挑战第22天】【Python爬虫】<万物可爬>Selenium+自动化测试工具 获取数据
|
数据采集 JavaScript 前端开发
深入网页分析:利用scrapy_selenium获取地图信息
网页爬虫是一种自动获取网页内容的技术,它可以用于数据采集、信息分析、网站监测等多种场景。然而,有些网页的内容并不是静态的,而是通过JavaScript动态生成的,例如图表、地图等复杂元素。这些元素往往需要用户的交互才能显示出来,或者需要等待一定时间才能加载完成。如果使用传统的爬虫技术,如requests或urllib,就无法获取到这些元素的内容,因为它们只能请求网页的源代码,而不能执行JavaScript代码。我们可以使用scrapy_selenium这个工具,它结合了scrapy和selenium两个强大的库,可以实现对动态网页的爬取。
171 0
深入网页分析:利用scrapy_selenium获取地图信息
|
数据采集 C#
使用c#和selenium获取网页
selenium 和 c# 的应用之一是创建一个网络爬虫,它可以从网页中抓取数据进行分析。网络爬虫是一种访问网页并从中提取信息的程序。 Selenium 是一个框架,它允许我们自动执行浏览器操作,例如单击、键入或导航。 C# 是一种编程语言,可用于编写网络爬虫的逻辑和功能。
182 0
|
数据采集 前端开发 安全
如何避免Selenium爬虫被网站识破
如何避免Selenium爬虫被网站识破
|
数据采集 Python
Python爬虫-selenium
Python爬虫-selenium
|
数据采集 Web App开发 JavaScript
|
数据采集 Web App开发 XML
爬虫大法之xpath详解
爬虫大法之xpath详解
爬虫大法之xpath详解
|
数据采集 Web App开发 Python
Python爬虫:对selenium的webdriver进行简单封装
Python爬虫:对selenium的webdriver进行简单封装
256 0