python爬虫环境1
转载 https://cuiqingcai.com/5052.html
1.1 python3安装
配置环境变量;随后点击“新建”,新建一个条目,将刚才复制的C:\Python36复制进去。这里需要说明的是,此处的路径就是你的Python 3安装目录,请自行替换。然后,再把C:\Python36\Scripts路径复制进去
添加别名
上面这两种安装方式任选其一即可完成安装,但如果之前安装过Python 2的话,可能会导致版本冲突问题,比如在命令行下输入python就不知道是调用的Python 2还是Python 3了。为了解决这个问题,建议将安装目录中的python.exe复制一份,命名为python3.exe,这样便可以调用python3命令了。实际上,它和python命令是完全一致的,这样只是为了可以更好地区分Python版本;在“开始”菜单中搜索cmd,找到命令提示符,此时就进入命令行模式了。输入python,测试一下能否成功调用Python。如果添加了别名的话,可以输入python3测试,就调用了python3
1.2 请求库的安装
爬虫可以简单分为几步:抓取页面、分析页面和存储数据,用到一些Python库来实现HTTP请求操作;用到的第三方库有Requests、Selenium和aiohttp等
1.2.1 request的安装
安装方式 1 wheel 安装是Python的一种安装包,其后缀为.whl,在网速较差的情况下可以选择下载wheel文件再安装,然后直接用pip3命令加文件名安装即可,下载对应的库的whl文件,切换到相应的目录执行 wheel文件目录,利用pip安装即可 如 pip3 install requests-2.17.3-py2.py3-none-any.whl
pip 安装 命令行下执行 pip install requests
源码安装 git clone git://github.com/kennethreitz/requests.git ;cd request 执行 python3 setup.py install即可安装
1.2.2 selenium 的安装
pip install selenium
1.2.3 ChromeDriver驱动的配置
安装ChromeDriver。因为只有安装ChromeDriver,才能驱动Chrome浏览器完成相应的操作,下载浏览器对应版本号的ChromeDriver,可以直接将chromedriver.exe文件拖到Python的Scripts目录下;配置完成后,就可以在命令行下直接执行chromedriver命令进行测试;弹出如下
Starting ChromeDriver 2.31.488763 (092de99f48a300323ecf8c2a4e2e7cab51de5ba8) on port 9515
Only local connections are allowed.
最新的Chrome浏览器版本已经支持无界面模式了
1.2.4 GeckoDriver安装
同ChromeDriver;配置完成后,就可以在命令行下直接执行geckodriver命令测试,会弹出相关提示
1.2.5 PhantomJS 最新的Chrome浏览器版本已经支持无界面模式了
1.2.6 aiohttp
Requests库是一个阻塞式HTTP请求库,当我们发出一个请求后,程序会一直等待服务器响应,直到得到响应后,程序才会进行下一步处理。其实,这个过程比较耗费资源。如果程序可以在这个等待过程中做一些其他的事情,如进行请求的调度、响应的处理等,那么爬取效率一定会大大提高。
aiohttp就是这样一个提供异步Web服务的库,从Python 3.5版本开始,Python中加入了async/await关键字,使得回调的写法更加直观和人性化。aiohttp的异步操作借助于async/await关键字的写法变得更加简洁,架构更加清晰
pip3 install aiohttp
官方还推荐安装如下两个库:一个是字符编码检测库cchardet,另一个是加速DNS的解析库aiodns。安装命令如下:
pip3 install cchardet aiodns
1.3 解析库
抓取网页代码之后,下一步就是从网页中提取信息。提取信息的方式有多种多样,可以使用正则来提取,但是写起来相对比较烦琐。这里还有许多强大的解析库,如lxml、Beautiful Soup、pyquery等。此外,还提供了非常强大的解析方法,如XPath解析和CSS选择器解析等,利用它们,我们可以高效便捷地从网页中提取有效信息
1.3.1 lxml
lxml是Python的一个解析库,支持HTML和XML的解析,支持XPath解析方式,而且解析效率非常高
windows 安装 pip3 install lxml
1.3.2 Beautiful Soup
是Python的一个HTML或XML的解析库,我们可以用它来方便地从网页中提取数据。它拥有强大的API和多样的解析方式
Beautiful Soup的HTML和XML解析器是依赖于lxml库的,所以在此之前请确保已经成功安装好了lxml库
pip3 install beautifulsoup4
我们虽然安装的是beautifulsoup4这个包,但是在引入的时候却是bs4。这是因为这个包源代码本身的库文件夹名称就是bs4,所以安装完成之后,这个库文件夹就被移入到本机Python3的lib库里,所以识别到的库文件名就叫作bs4。
1.3.3
pyquery同样是一个强大的网页解析工具,它提供了和jQuery类似的语法来解析HTML文档,支持CSS选择器
pip3 install pyquery
1.3.4
OCR,即Optical Character Recognition,光学字符识别,是指通过扫描字符,然后通过其形状将其翻译成电子文本的过程。对于图形验证码来说,它们都是一些不规则的字符,这些字符确实是由字符稍加扭曲变换得到的内容;tesserocr是Python的一个OCR识别库,但其实是对tesseract做的一层Python API封装,所以它的核心是tesseract。因此,在安装tesserocr之前,我们需要先安装tesseract
https://cuiqingcai.com/5189.html
pip3 install tesserocr pillow
1.4 数据库
为数据存储的重要部分,数据库同样是必不可少的,数据库可以分为关系型数据库和非关系型数据库
关系型数据库如SQLite、MySQL、Oracle、SQL Server、DB2等,其数据库是以表的形式存储,非关系型数据库如MongoDB、Redis,它们的存储形式是键值对,存储形式更加灵活
mysql 的安装
1.4.2 mongodb数据库
https://cuiqingcai.com/5205.html
1 下载mongodb msi 安装包直接安装
2 安装成功之后,进入MongoDB的安装目录,此处是C:\MongoDB\Server\3.4,在bin目录下新建同级目录data
3 然后进入data文件夹,新建子文件夹db来存储数据目录
4 之后打开命令行,进入MongoDB安装目录的bin目录下,运行MongoDB服务 mongod --dbpath "C:\MongoDB\Server\3.4\data\db" ;cmd会出现相关信息
5 在“开始”菜单中搜索cmd,找到命令行,然后右击它以管理员身份运行即可。
随后新建一个日志文件,在bin目录新建logs同级目录,进入之后新建一个mongodb.log文件,用于保存MongoDB的运行日志
6 cmd 执行 mongod --bind_ip 0.0.0.0 --logpath "C:\MongoDB\Server\3.4\logs\mongodb.log" --logappend --dbpath "C:\MongoDB\Server\3.4\data\db" --port 27017 --serviceName "MongoDB" --serviceDisplayName "MongoDB" --install
7 这里的意思是绑定IP为0.0.0.0(即任意IP均可访问),指定日志路径、数据库路径和端口,指定服务名称
8 如果没有出现错误提示,则证明MongoDB服务已经安装成功,可以在服务管理页面查看到系统服务
9 然后就可以设置它的开机启动方式了,如自动启动或手动启动等,这样我们就可以非常方便地管理MongoDB服务了。
10 启动服务后,在命令行下就可以利用mongo命令进入MongoDB命令交互环境了,如图1-38所示。
1.4.3 redis
Redis是一个基于内存的高效的非关系型数据库
下载地址 https://github.com/MSOpenTech/redis/releases
在系统服务页面里,可以观察到多了一个正在运行到Redis服务
安装后,直接连接本地Redis即可
1.5 数据库想要和Python交互的话,还需要安装一些Python存储库,如MySQL需要安装PyMySQL,MongoDB需要安装PyMongo
1.5.1 pymysql
pip3 install pymysql
1.5.2 mongodb
pip3 install pymongo
1.5.3 redis
对于Redis来说,我们要使用redis-py库来与其交互
pip3 install redis
1.5.4 RedisDump
RedisDump是一个用于Redis数据导入/导出的工具,是基于Ruby实现的,所以要安装RedisDum
1.6 web库
在本书中,我们主要使用这些Web服务程序来搭建一些API接口,供我们的爬虫使用。例如,维护一个代理池,代理保存在Redis数据库中,我们要将代理池作为一个公共的组件使用,那么如何构建一个方便的平台来供我们获取这些代理呢?最合适不过的就是通过Web服务提供一个API接口,我们只需要请求接口即可获取新的代理,这样做简单、高效、实用
python爬虫环境1的更多相关文章
- selenium+python爬虫环境搭建
前言: 准备使用selenium爬取网站数据,先搭建selenium+python爬虫环境搭建 系统环境: 64位win10系统,同时装python2.7和python3.6两个版本,IDE为pych ...
- 1,Python爬虫环境的安装
前言 很早以前就听说了Python爬虫,但是一直没有去了解:想着先要把一个方面的知识学好再去了解其他新兴的技术. 但是现在项目有需求,要到网上爬取一些信息,然后做数据分析.所以便从零开始学习Pytho ...
- Python爬虫环境常用库安装
1:urllib urllib.request这两个库是python自带的库,不需要重新安装,在python中输入如下代码: import urllibimport urllib.requestres ...
- 利用Anaconda进行python爬虫环境的配置-安装scrapy
1.下载Anaconda,下载地址:https://www.continuum.io/downloads 2.安装anaconda. 3.安装scrapy
- 2,简单的Python爬虫
前言 根据上一篇 1,Python爬虫环境的安装我们已经在本地安装好了Python环境,那么这一篇就开始学习如何用Python来爬虫! 环境:操作系统:Windows10 IDE: PyCharm ...
- python爬虫入门-开发环境与小例子
python爬虫入门 开发环境 ubuntu 16.04 sublime pycharm requests库 requests库安装: sudo pip install requests 第一个例子 ...
- Python笔记(一):安装+爬虫环境配置+打包为EXE文件
1. 安装 https://www.python.org/downloads/windows/ 到官网下载安装程序 Windows x86 32位操作系统 Windows x8 ...
- Python爬虫入门教程 1-100 CentOS环境安装
简介 你好,当你打开这个文档的时候,我知道,你想要的是什么! Python爬虫,如何快速的学会Python爬虫,是你最期待的事情,可是这个事情应该没有想象中的那么容易,况且你的编程底子还不一定好,这套 ...
- python爬虫学习笔记(一)——环境配置(windows系统)
在进行python爬虫学习前,需要进行如下准备工作: python3+pip官方配置 1.Anaconda(推荐,包括python和相关库) [推荐地址:清华镜像] https://mirrors ...
随机推荐
- linuxprobe培训第3节课笔记2019年7月7日
linux常用命令: echo:在终端输出字符串或变量提取后的值 date:显示及设置系统的时间或日期 reboot:重启 poweroff:关机 wget:下载 ps:查看系统中的进程状态(常用参数 ...
- MMM实现Mysql高可用
MySQL主主同步方案 l MySQL主主+Keepalived l MySQL+DRBD+Heartbeat 在企业中,数据库高可用一直是企业的重中之重,中小企业很多都是使用mysql主主方案, ...
- (PASS)PLSQL激活
注册码: Product Code(产品编号):4t46t6vydkvsxekkvf3fjnpzy5wbuhphqz serial Number(序列号):601769 password(口令):xs ...
- Jmeter 将正则表达式提取的参数传给全局(跨线程组使用变量)
一.使用正则表达式提取sessionId 1.在测试计划(跨线程组使用变量)--> 线程组(登录)--> 添加HTTP请求(登录接口) (1)创建测试计划: 勾选独立运行每个线程组(例如在 ...
- mongodb重置密码
1.删除服务,重新创建没有验证的服务 2.关闭服务后修改conf文件auth=false或者 3.重新开启服务后然后进入mongo 查看是否存在用户 use admin db.system.users ...
- 最大流的EK算法模板
模板题:洛谷p3376 题目大意: 给出一个网络图,以及其源点和汇点,求出其网络最大流. 基本思路: 套模板 EK的时间复杂度O(V*E^2) EK算法思路: 1.通过BFS拓展合法节点(每个节点在本 ...
- JavaSE---用户交互---获取键盘输入
1.概述 1.1 JDK1.5提供了Scanner类,用来获取键盘输入: 1.2 Scanner类是 一个基于正则表达式的文本扫描器,可以从文件.输入流.字符串中解析出基本类型值.字符串值: 1. ...
- 【原理】scan
SCAN 命令的保证(guarantees) 同一个元素可能会被返回多次. 处理重复元素的工作交由应用程序负责, 比如说, 可以考虑将迭代返回的元素仅仅用于可以安全地重复执行多次的操作上. 如果一个元 ...
- CDN(Content Delivery Network)内容分发网络
CDN的全称是Content Delivery Network,即内容分发网络.其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快.更稳定.通过在网络各处放置节 ...
- tcp和udp得区别
TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的.可靠的.基于字节流的传输层通信协议 UDP 是User Datagram Protocol,即 用户 ...