最全python爬虫库安装详解

目录

一、请求库的安装

1.requests 的安装

2.Selenium的安装

3.ChromeDrive 的安装

4.GeckoDriver 的安装

5.PhantomJS 的安装

6.aiohttp 的安装

二、解析库的安装

1.lxml 的安装

2.Beautiful Soup 的安装

3.pyquery 的安装

4.tesserocr 的安装


一、请求库的安装

        爬虫可以简单分为几步:抓取页面、分析页面和存储数据
        在抓取页面的过程中 ,我们需要模拟浏览器向服务器发出请求,所以需要用到一些 Python 库来实现HTTP请求操作
        接下来,我们介绍一下这些请求库的安装方法

1、requests 的安装

1. 相关链接

  • GitHub:https://github.com/requests/requests
  • PyPI:requests · PyPI
  • 官方文档:http://www.python-requests.org
  • 中文文档:http://docs.python-requests.org/zh_CN/latest

 2 . pip 安装

pip install requests

2、Selenium的安装

        Selenium是一个自动化测试工具,利用它我们可以驱动浏览器执行特定的动作,如点击、下拉等操作对于一些JavaScript谊染的页面来说,这种抓取方式非常有效。

1.相关链接

  • 官方网站:https://www.seleniumhq.org
  • GitHub: selenium/py at trunk · SeleniumHQ/selenium · GitHub
  • PyPI: https://pypi.python.org/pypi/selenium
  • 官方文梢:https://selenium-python.readthedocs.io
  • 中文文档:Selenium with Python中文翻译文档 — Selenium-Python中文文档 2 documentation

 2.pip 安装

pip install selenium

3、ChromeDrive 的安装

​        前面我们成功安装好了Selenium库,但是他是一个自动化测试工具,需要浏览器来配合使用。
        首先,下载 hrome 浏览器。
        随后安装 ChromeDriver 因为只有安装 ChromeDriver ,才能驱动 Chrome 浏览器完成相应的操作 下面我们来介绍下怎样安装 ChromeDriver。

1. 相关链接
  • 官方网站: https://sites.google.com/a/chromium.org/chrome.ver
  • 下载地址 :https://chromedriver.storage.googleapis.com/index.html

 2.准备工作

        在这之前请确保已经正确安装好了 Chrome 浏览器并可以正常运行,安装过程不再赘述
3. 查看版本
        点击 chrome 菜单“帮助”→“关于 Google Chrome”,即可查看 Chrome 的版本号

这里我的 Chrome 版本是 96.0
请记住 Chrome 版本号,因为选择 ChromeDriver 版本时需要用到

4. 下载 ChromeDriver 

         打开 ChromeDriver 的官方网站,可以看到最新版本为 96.04664.18 ,其支持的 Chrome 浏览器版本为 96.04664

        如果你的 Chrome 版本号不在此范围,可以继续查看之前的 hromeDriver 每个版本都有相
应的支持 Chrome 版本的介绍,请找好自己的 Chrome 浏览器版本对应的 ChromeDriv er 版本再下载, 否则可能无法正常工作
        找好对应的版本号后,随后到 hromeDriver 镜像站下载对应的安装包即可:https://chromedriver.storage.googleapis.com/index.html 在不同平台下,可以下载不同的安装包

 5.环境变量配置

下载完成后,将 hromeDriver 的可执行文件配置到环境变量下
在Windows 下,建议直接将 hromedriver.exe 文件拖到 Python Scripts 目录下

 

 6. 验证安装

        配置完成后,就可以在命令行下直接执行 chromedriver 命令了: chromedriver

        随后再在程序中测 Python 代码:

from selenium import webdriver
browser = webdriver.Chrome()

 返回:

         运行之后 如果弹出一个空Chrome 浏览器,则证明所有的配置都没有问题。如果没有弹出,

请检查之前的每一步配置。
        如果弹出闪退则可能 ChromeDriver 版本和 Chrome 版本不兼容 ,请更换 ChromeDriver版本。如果没有问题 ,接下来就可以利用 Chrome 来做网页抓取了

4.GeckoDriver 的安装

         上面,我们了解了ChromeDriver的配置方法,配置完成后可以用Selenium驱动Chrome浏览器做对应的网页抓取。

        那么对应Firefox来说,也可以用同样的方式完成Selenium的对接,这时需要安装另一个驱动GeckoDriver,接下来我们接受一下它的安装过程。

1. 相关链接
  • GitHub: GitHub - mozilla/geckodriver: WebDriver for Firefox
  • 下载地址: Releases · mozilla/geckodriver · GitHub

 2. 准备工作

        确保已经正确安装了Firefox浏览器并且能正常运行。

3.下载 GeckoDriver

        在GitHub 上找 GeckoDriver 的发行版,并找到最新版的,如下是0.30

 因我的电脑是win10,64位的所以下载如图的

 

 4. 环境变量配置

在Windows 下,可以直接 geckodriver.exe 文件拖到 Python Scripts 录下,如ChromeDrive 的安装一样
5. 验证安装
配置完成后,就可以在命令行下直接执行 geckodriver 命令测试:
geckodriver

 返回如下,则证明安装成功且配置正确

        随后执行如下 Python 代码 在程序中测试一下
from selenium import webdriver
browser = webdriver.Firefox()

 返回,不知为啥这次pycharm里运行会报错,于是我用了Anaconda运行

        运行之后,若弹出一个空内的 firefox 浏览器,则证明所有的配置都没有问题 ;如果没有弹出, 请检查之前的每一步配置

5.PhantomJS 的安装

        PhantomJS 是一个无界面 、可脚本编程的 WebKit 浏览器引擎,它原生支持多 Web 标准 DOM 操作、 ss 选择器、 JSON Canvas 以及 SVG。
        Selenium 支持 PhantomJS ,这样在运行的时候就不会再弹出 个浏览器了 而且 PhantomJS 的运 行效率也很高,还支持各种参数配置,使用非常方便 下面我 就来了解一下 PhantomJS 安装过程。
1. 相关链接
  • 官方网站: PhantomJS - Scriptable Headless Browser
  • 官方文梢:Quick Start with PhantomJS
  • 下载地址1: Download PhantomJS
  • 下载地址2:
  • API 接门说明:Command Line Interface | PhantomJS
2. 下载 PhantomJS(建议用下载地址1)
        在官网找到对应版本下载对应操作系统的安装包,下载完成后,将 PhantomJS 可执行文件所在的路径配置到环境变盘里 比如在 Windows 下,将下载的文件解压之后并打开,会看到一个 in 文件夹,里面包括 个可执行文件 phantomjs.exe ,我们需 要将它直接放在配置好环境变量的路径下或者将它所在的路径配置到环境变盘里 比如,我们既可以 将它直接复制到 Python Scripts 文件夹,也可以将它所在的 bin 目录加入到环境变量。

3. 验证安装
首先在命令提示符里输入 phantomjs并回车返回如下,证明成功了
在Selenium 中使用的话,我们只需要将 Chrome 切换为 PhantomJS 即可:
from selenium import webdriver
browser = webdriver.PhantomJS()
browser.get('https://www.baidu.com')
print(browser.current_url)

 如果返回如下,则说明selenium版本过高,需要安装低版本的,因为最新版已经放弃了phantomjs

1.先把selenium卸载,代码如下:

pip uninstall selenium

2.安装selenium==2.48.0版本的,代码如下:

pip install selenium==2.48.0

完美运行成功!!!!!

 返回:

 

        运行之后,我们就不会发现有浏览器弹出了,但实际上 PhantomJS 已经运行起来了 这里我们访 问了百度,然后将当前的 URL 打印出来
        控制台的输出如下
        https: //www.baidu.com/
        如此一来,我们便完成了 PhantomJS 的配置,后面可以利用它来完成一些页面的抓取

6.aiohttp 的安装

        requests 库是一个阻塞式 HTTP 请求库,当我们发出一个请求后程序会一直等待服务器响应,直到得到响应后,程序才会进行下 步处理 其实,这个过程比较耗费时间 如果程序可以在这个等待过程中做一些其他的事情,如进行请求的调度 响应的处理等,那么爬取效率一定会大大提高 。
        aiohttp 就是这样一个提供异步 Web 服务的库,从 Python3.5版本开始,python 中加入了 async/await 关键字,使得回调的写法更加直观和人性 aiohttp即的异步操作借助于 async/await 关键字的写法变 得更加简洁,架构更加清晰使用异步请求库进行数据抓取时,会大大提高效率,下面我 来看一下这个库的安装方法:
1.相关链接
  • 官方文档: Welcome to AIOHTTP — aiohttp 3.8.1 documentation
  • GitHub: GitHub - aio-libs/aiohttp: Asynchronous HTTP client/server framework for asyncio and Python
  • PyPI: aiohttp · PyPI

 2. pip 安装

pip install aiohttp
        另外,官方还推荐安装如下两个库个是字符编码检测库cchardet ,另一个是加速DNS解析aiodns 安装命令如下:
pip install cchardet aiodns

二、解析库的安装

1、lxml 的安装

        lxm是Python的一个解析库,支持 HTML和XML的解析,支持XPath 解析方式,而且解析效
率非常高。接下来,我们了解一下 lxml 安装方式。
1.相关链接
  • 官方网站:lxml - Processing XML and HTML with Python
  • GitHub: https://github.com/lxml/lxml
  • PyPI: https://pypi.org/pyp/lxml
2 . Windows 下的安装
在Windows 下,可以先尝试利用 pip 安装, 此时直接执行如下命令即可:
pip install lxml
#或
pip3 install lxml
如果没有任何报锚,则证明安装成功
如果: 现报 ,比如提示缺少 lib ml2 库等信息 可以采用 heel 方式安装
推荐直接到这里(链接为:https://www.lfd.uci.edu/-gohblke/pythonlibs/#lxml )下载对应的weel文
件,找到本地安装 Python 版本和系统对应的 lxml 版本,例如 Windows 64 位、 Python3.6,就选作 lxml-3 .8.0-cp36-cp36m-win _ amd64. whl ,将其下载到本地
然后利用 pip 安装即可,命令如下
pip install lxml 3.8.0-cp36-cp36m-win_amd64 .whl
#或
pip3 install lxml 3.8.0-cp36-cp36m-win_amd64 .whl
这样我 就可以成功安装 lxml
3.验证安装
安装完成之后,可以在 Python命令行下测试:

 如果没有错误报出,则证明库已经安装好了

2.Beautiful Soup 的安装

        Beautiful Soup是Python HTML或XML 的解析库,我们可以用它来方便地从网页中提取
数据。它拥有强大的API 多样的解析方式。
1. 相关链接
  • 官方文档:Beautiful Soup Documentation — Beautiful Soup 4.9.0 documentation
  • 文文档:Beautiful Soup 4.4.0 文档 — Beautiful Soup 4.2.0 documentation
  • PyPI: beautifulsoup4 · PyPI
2. 准备工作
        Beautiful Soup HTML和XML 解析器是依赖于 lxml 库的,所以在此之前请确保已经成功安装
好了 lxml 库,具体的安装方式参见上面
3. pip 安装
pip install beautifulsoup4
#或
pip3 install beautifulsoup4
        命令执行完毕之后即可完成安装
4. wheel 安装
        可以从 PyPI下载wheel 文件安装,链接如下:beautifulsoup4 · PyPI
        然后使用pip 安装wheel 文件即可
5. 验证安装
安装完成之后,可以运行下面的代码验证一下:
from bs4 import BeautifulSoup 
soup = BeautifulSoup('<p>Hello</p>','lxml') 
print(soup.p.string)

运行结果如下:

运行一致,则证明安装成功。

3.pyquery 的安装

        pyquery 个强大的网页解析工具,它提供了和 jQuery 类似的语法来解析 HTML 文梢,支持CSS选择器,使用非常方便。
1. 相关链接
  • GitHub: GitHub - gawel/pyquery: A jquery-like library for python
  • PyPI : pyquery · PyPI
  • 官方文档:pyquery: a jquery-like library for python — pyquery 1.3.x documentation
2. pip 安装
pip install pyquery
#或
pip3 install pyquery
        命令执行完毕之后即可完成安装
3. wheel 安装
        可以从 PyPI下载wheel 文件安装,链接如下:beautifulsoup4 · PyPIpyquery · PyPIbeautifulsoup4 · PyPI
然后使用pip 安装wheel 文件即可。比如如果当前版本为 1.2.17 ,则下载的文件名称为 pyquery-1.2.17-py2.py3-none-any.whl ,此时下载到本地再进行 pip 安装即可,命令如下:
pip install pyquery-1.2.17-py2.py3-none-any.whl 
#或
pip3 install pyquery-1.2.17-py2.py3-none-any.whl 
4. 验证安装
安装完成之后,可以运行下面的代码验证一下:
import pyquery

运行结果如下:

运行没有报错,则证明安装成功。

4.tesserocr 的安装

        在爬虫过程中,难免会遇到各种各样的验证码,而大多数验证码还是图形验证码,这时候我们 以直接用 OCR 来识别。

1.OCR

        OCR ,即 Optical Character Recognition ,光学字符识别,是指通过扫描字符,然后通过其形状将其翻译成电子文本的过程。对于图形验证码来说,它们都是一些不规则的字符 ,这些字符确实是由字符稍加扭曲变换得到的内容
        tesserocr是Python的一个 OCR 识别库,但其实是对 tesseract 做的 一层Python API 封装,所以它的核心是 tesseract 因此,在安装 tesserocr 前,我们需要先安装tesseract 。
2.相关链接
  • tesserocr GitHub: GitHub - sirfz/tesserocr: A Python wrapper for the tesseract-ocr API
  • tesserocr Py PI: tesserocr · PyPI
  • tesserac 下载地址:Index of /tesseract
  • tesserac GitHub :https://github.com/tesseract-ocr/tesseract
  • tesserac 语言包 https://github.com/tesseract-ocr/tessdata
  • tesseract 文档Manual Pages | tessdoc
3. Windows 下的安装
在Window 下,首先需要下载 tesseract ,它为 tesserocr 提供了支持,进入下载页面,其中文件名中带有 dev 的为开发版本,不带 dev 的为稳定版本,可以选择下载不带 dev 的版本。
例如可以选择下载 tesseract-ocr-w64-setup-v5.0.1.20220107.exe

 下载完成后双击, 好像没有中文版的

然后一直点 next 和 i agree 就行,直到

        此时可以句选 Additional language data download 选项来安装 OCR 识别支持的语 包,这样 OCR 便可以识别多国语言 然后一直点击 Next 按钮即可
接下来 再安装 tesserocr 即可,此时直接使用 pip 安装
pip install tesserocr pillow
#或
pip3 install tesserocr pillow

4.验证安装

接下来,我们可以使用 tesseract tesserocr 来分别进行测试下面这张图片

首先,用 tesseract 命令测试:

 打开照片所在文件夹,按住 shift 击右键 打开 powershell窗口 输入下面命令:

tesseract image.png stdout -l eng

得到结果:

然后,我们看一下在python中如何演示:

首先,现安装库

pip install pytesseract

如何想要在python中使用 pytesseract 库,则需要先添加 tesseract 的环境变量

1.将tesseract.exe添加到环境变量PATH中

我的电脑——右键——属性——高级系统设置——环境变量——将 tesseract.exe 所在的文件夹的路径添加到 path 中

2. 修改pytesseract.py文件,指定tesseract.exe安装路径

然后打开它

import pytesseract
from PIL import Image
pytesseract.pytesseract.tesseract_cmd=r'D:\Tesseract-OCR\tesseract.exe'
image=Image.open('D:\桌面\python\jupyter\image.png')#所要识别的图片的位置
#默认是英文,如果是英文就不需更改
text=pytesseract.image_to_string(image)
#默认是英文,如果是中文,要将语言改成中文。
# text=pytesseract.image_to_string(image,lang='chi_sim')
print(text)

返回:

 

库,先安装到这里,后面还有很多很多,等我慢慢补充,嘿嘿!!!  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/565089.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

山东大学 2020级数据库系统 实验五

What’s more 山东大学 2020级数据库系统 实验一 山东大学 2020级数据库系统 实验二 山东大学 2020级数据库系统 实验三 山东大学 2020级数据库系统 实验四 山东大学 2020级数据库系统 实验五 山东大学 2020级数据库系统 实验六 山东大学 2020级数据库系统 实验七 山东大学 20…

C语言二维数组的使用

二维数组的定义 二维数组定义的一般形式是&#xff1a; dataType arrayName[length1][length2];其中&#xff0c;dataType 为数据类型&#xff0c;arrayName 为数组名&#xff0c;length1 为第一维下标的长度&#xff0c;length2 为第二维下标的长度。 我们可以将二维数组看…

python基础入门(8)之集合

目录 Python集合 一、集合理解 二、访问集合 2.1&#xff09;遍历集合 3.2&#xff09;检查是否存在 三、添加集合 3.1&#xff09;添加项目值 3.3&#xff09;添加任何可迭代对象 四、移除集合项 4.1&#xff09;remove方法 4.2&#xff09;iscard() 方法 4.3&…

山东大学 2020级数据库系统 实验六

What’s more 山东大学 2020级数据库系统 实验一 山东大学 2020级数据库系统 实验二 山东大学 2020级数据库系统 实验三 山东大学 2020级数据库系统 实验四 山东大学 2020级数据库系统 实验五 山东大学 2020级数据库系统 实验六 山东大学 2020级数据库系统 实验七 山东大学 20…

C语言数组元素的查询

数组的查询 在日常的开发过程中&#xff0c;我们经常需要查询数组中的元素&#xff0c;这就需要我们使用数组元素查询的方法来进行查询。 对无序数组的查询 无序数组&#xff0c;就是数组元素的排列没有规律。无序数组元素查询的思路也很简单&#xff0c;就是用循环遍历数组…

山东大学 2020级数据库系统 实验七

What’s more 山东大学 2020级数据库系统 实验一 山东大学 2020级数据库系统 实验二 山东大学 2020级数据库系统 实验三 山东大学 2020级数据库系统 实验四 山东大学 2020级数据库系统 实验五 山东大学 2020级数据库系统 实验六 山东大学 2020级数据库系统 实验七 山东大学 20…

python基础入门(9)之字典

目录 Python字典 一、字典理解 1.1&#xff09;创建字典与访问 1.2&#xff09;字典长度 1.3&#xff09;数据类型 二、访问字典 2.1&#xff09;访问键名 2.2&#xff09;访问健值 三、更改字典各种方法 四、添加字典项各种方法 五、删除字典的各种方法 ​六、遍历…

山东大学 2020级数据库系统 实验八、九

What’s more 山东大学 2020级数据库系统 实验一 山东大学 2020级数据库系统 实验二 山东大学 2020级数据库系统 实验三 山东大学 2020级数据库系统 实验四 山东大学 2020级数据库系统 实验五 山东大学 2020级数据库系统 实验六 山东大学 2020级数据库系统 实验七 山东大学 20…

python基础入门(10)之循环语句

目录 一、If … Else语句 一.if语句 二.缩进 三.elif语句 四.else语句 4.1基本else 4.2&#xff09;and语句 4.3&#xff09;or 语句 4.4&#xff09;嵌套if语句 4.4&#xff09;pass语句 二、while循环语句 一.基本理解 二.中断声明 三.continue 声明 四.else …

python基础(11)之函数

目录 函数 一、创建函数与调用 二、参数 三、参数数量 四、任意参数&#xff0c;*args 五、关键字参数 七、任意关键字参数&#xff0c;**kwargs 八、默认参数值 九、将列表作为参数传递 十、返回值 十一、pass语句 函数 一、创建函数与调用 在 Python 中&#xf…

排序算法的实现及时间复杂度分析——计数排序、选择排序、冒泡排序、插入排序

文章目录排序算法计数排序选择排序冒泡排序插入排序排序算法 排序算法是解决问题中常见且非常重要的一环&#xff0c;针对相应的问题选择相应的排序算法&#xff0c;能够提高问题解决速度&#xff0c;节省时间&#xff01;&#xff01;&#xff01; 常见的排序算法有&#xf…

python基础(12)之匿名函数lambda

lambda lambda 函数是一个小的匿名函数。一个 lambda 函数可以接受任意数量的参数&#xff0c;但只能有一个表达式。 语法&#xff1a; lambda arguments : expression 执行表达式并返回结果&#xff1a; 示例将 10 添加到 argument a&#xff0c;并返回结果&#xff1a; …

C语言快速排序

快速排序是对冒泡法排序的一种改进。 快速排序算法 的基本思想是&#xff1a;将所要进行排序的数分为左右两个部分&#xff0c;其中一部分的所有数据都比另外一 部分的数据小&#xff0c;然后将所分得的两部分数据进行同样的划分&#xff0c;重复执行以上的划分操作&#xff0…

机器学习入门(1)之基本概念简介

目录 一、机器学习概述 1.1 什么是机器学习&#xff1f; 1.2 为什么需要机器学习&#xff1f; 1.3 机器学习应用场景 1.4 机器学习的一般流程 1.5 典型的机器学习过程​ 二、机器学习的基本术语 三.假设空间与版本空间 四、归纳偏好 1.哪种更好 2..假设的选择原则 …

山东大学 2020级计算机系统原理——拆解二进制炸弹

写在前面 第一次拿到这个实验还是有点慌&#xff01;之前没见过&#xff0c;不过还是慢慢做过来了。 这是个需要耐心的过程&#xff0c;请一定静下心来哦&#xff01; 环境及配置 环境&#xff1a;Ubuntu 20.04 GDB 调试工具 可参考配置&#xff1a;GDB调试工具配置&#…

机器学习入门(2)之模型评估与选择

目录 一、误差与拟合 1. 泛化误差与经验误差 2. 损失函数与训练误差 3. 过拟合与欠拟合 4. 过拟合的另一种现象&#xff1a;数据泄露 二、评估方法 1. 留出法 2. 交叉验证法&#xff08;留一法&#xff09; 3. 自助法 4. 调参与最终模型 三、性能度量 1. 混淆矩阵 …

pytorch MNIST 手写数字识别 + 使用自己的测试集 + 数据增强后再训练

文章目录1. MNIST 手写数字识别2. 聚焦数据集扩充后的模型训练3. pytorch 手写数字识别基本实现3.1完整代码及 MNIST 测试集测试结果3.1.1代码3.1.2 MNIST 测试集测试结果3.2 使用自己的图片进行测试3.2.1 测试图片预处理代码3.2.2 测试图片结果4. 数据增强4.1 手动读取 MNIST …

python基础(13)之数组

目录 数组 一、访问数组的元素 二、数组的长度 三、修改数组 四、数组的其它操作 数组 Python 没有对数组的内置支持&#xff0c;但可以使用Python 列表代替。 例如&#xff1a; ben ["笨小孩1", "笨小孩2", "笨小孩3"]一、访问数组的元…

C语言归并排序(合并排序)

归并排序也称合并排序&#xff0c;其算法思想是将待排序序列分为两部分&#xff0c;依次对分得的两个部分再次使用归并排序&#xff0c;之后再对其进行合并。仅从算法思想上了解归并排序会觉得很抽象&#xff0c;接下来就以对序列A[0], A[l]…, A[n-1]进行升序排列来进行解说&a…

python基础(14)之 类和对象

目录 Python类和对象 一、创建类 二、创建对象 三、init() 函数 四、对象方法 五、自参数 六、对象及其属性更改 七、pass语句 Python类和对象 Python 类/对象。Python 是一种面向对象的编程语言。Python 中的几乎所有东西都是一个对象&#xff0c;有它的属性和方法。…