Python3 常用爬虫库的安装

Python3 常用爬虫库的安装


1 简介

Windows下安装Python3常用的爬虫库:requests、selenium、beautifulsoup4、pyquery、pymysql、pymongo、redis、flask、django、jupyter和scrapy框架

入控制台,用pip3 list命令查看系统已经安装了哪些第三方包:

DEPRECATION: The default format will switch to columns in the future. You can use --format=(legacy|columns) (or define a format=(legacy|columns) in your pip.conf under the [list] section) to disable this warning.
pip (9.0.1)
setuptools (28.8.0)
You are using pip version 9.0.1, however version 9.0.3 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.

 果显示已经安装了pip (9.0.1)setuptools (28.8.0),并提示pip可以升级到9.0.3版本,这个可以不用管。

Tips:若安装了多个Python版本,各自安装的第三方包是独立的。本机安装了Python2.7Python3.6两个版本,命令行进入python修改为python2python3,对应的pip命令修改为pip2pip3,本机的第三方库全安装Python3.6版本下。


2 requests库的安装

是Python用于网页请求的库,不是内置库,需要手动安装,可以用pip命令直接安装:

C:UsersStrive>pip3 install requests

待安装,没有意外,最后会提示requests库以及相关依赖库安装成功:

Successfully installed certifi-2018.1.18 chardet-3.0.4 idna-2.6 requests-2.18.4 urllib3-1.22

试一下requests库,命令行进入python,并获取百度首页:

C:UsersStrive>python3
Python 3.6.2 (v3.6.2:5fd33b5, Jul 8 2017, 04:14:34) [MSC v.1900 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import requests
>>> requests.get('http://www.baidu.com')
<Response [200]>

回响应码200,说明requests库安装正常。


3 selenium库的安装

请求用JS渲染的页面时,requests库是无法正常获取到页面结果的,这个时候就需要用到selenium库,该库可以驱动浏览器来获得JS渲染后的页面,可以用pip命令直接安装:

C:UsersStrive>pip3 install selenium

待安装,没有意外,最后会提示selenium库(没有依赖库)安装成功的信息:

Successfully installed selenium-3.11.0

试一下selenium库,命令行进入python,驱动Chrome进入百度首页:

C:UsersStrive>python3
Python 3.6.2 (v3.6.2:5fd33b5, Jul 8 2017, 04:14:34) [MSC v.1900 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from selenium import webdriver
>>> driver = webdriver.Chrome()
Traceback (most recent call last):
    File "D:PythonPython36-32libsite-packagesseleniumwebdrivercommonservice.py", line 76, in start
stdin=PIPE)
    File "D:PythonPython36-32libsubprocess.py", line 707, in __init__
restore_signals, start_new_session)
    File "D:PythonPython36-32libsubprocess.py", line 992, in _execute_child
startupinfo)
FileNotFoundError: [WinError 2] 系统找不到指定的文件。

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    File "D:PythonPython36-32libsite-packagesseleniumwebdriverchromewebdriver.py", line 68, in __init__
        self.service.start()
    File "D:PythonPython36-32libsite-packagesseleniumwebdrivercommonservice.py", line 83, in start
        os.path.basename(self.path), self.start_error_message)
selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home

 结果显示chromedriver没有配置到环境变量中,并给出了chromedriver的下载地址:https://sites.google.com/a/chromium.org/chromedriver/home 为本机没有翻墙,这个地址打不开,上百度搜索镜像,并下载对应的Chrome浏览器驱动:http://npm.taobao.org/mirrors/chromedriver/ 载最新的版本2.9,解压到当前文件夹,并将chromedriver.exe文件复制到D:PythonPython36-32Scripts目录,该目录已经配置到了环境变量中。然后用上述命令继续测试:

C:UsersStrive>python3
Python 3.6.2 (v3.6.2:5fd33b5, Jul 8 2017, 04:14:34) [MSC v.1900 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from selenium import webdriver
>>> driver = webdriver.Chrome()

DevTools listening on ws://127.0.0.1:12734/devtools/browser/7496d615-f493-4f91-ab7e-4a2ac81012b9

 时会弹出一个空白的Chrome窗口。继续获取百度首页面:

>>> driver.get('http://www.baidu.com')

 结果报错:

        raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: Runtime.executionContextCreated has invalid 'context': {"auxData":{"frameId":"E43AB8BE7AF397B6CDDD47425C8396BF","isDefault":true},"id":1,"name":"","origin":"://"}
    (Session info: chrome=65.0.3325.146)
    (Driver info: chromedriver=2.9.248315,platform=Windows NT 6.3 x86_64)

chromedriver版本与Chrome版本不匹配,chromedriver版本太高,重新下一个版本替换掉上一个chromedriver.exe,在notes.txt中可以查看chromedriver对应的Chrome版本,本机Chrome版本为版本 65.0.3325.146(正式版本) (64 位),下载chromedriver2.37版本,继续测试:

>>>driver.get('http://www.baidu.com')

 界面可以正常显示百度首页。接下来获取网页源码:

>>>driver.page_source

Tips若下载的chromedriver版本不支持你的Chrome还会继续报错,请下载符合你Chrome的chromedriver。


phantomjs浏览器的安装

phantomjs是一个无界面的浏览器,在使用爬虫模拟浏览器操作的时候不会出现浏览器界面,操作非常方便。phantomjs的下载地址:http://phantomjs.org/download.html

接下载最新版本即可。将解压后的phantomjs-2.1.1-windows目录剪切到D:PythonPython36-32目录下,并将D:PythonPython36-32phantomjs-2.1.1-windowsin目录配置到用户环境变量中去。命令行进入phantomjs命令:

C:UsersStrive>phantomjs
phantomjs>

这个交互模式就可以执行js程序。接下来命令行进入python,用phantomjs请求百度首页,并获取网页源代码:

C:UsersStrive>python3
Python 3.6.2 (v3.6.2:5fd33b5, Jul 8 2017, 04:14:34) [MSC v.1900 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from selenium import webdriver
>>> driver = webdriver.PhantomJS()
D:PythonPython36-32libsite-packagesseleniumwebdriverphantomjswebdriver.py:49: UserWarning: Selenium support for PhantomJS has been deprecated, please use headless versions of Chrome or Firefox instead
    warnings.warn('Selenium support for PhantomJS has been deprecated, please use headless '
>>> driver.get('http://www.baidu.com')
>>> driver.page_source

够成功获取百度首页代码,这个过程中并没有出现浏览器窗口,结果提示Selenium已经废弃了对PhantomJS的支持,请使用Chromeheadless模式


lxml库的安装

lxml提供xpath的解析方式,可以对网页进行高效的解析。可以使用pip命令直接安装:

C:UsersStrive>pip3 install lxml

等待安装,不出意外,会出现安装成功提示:

Successfully installed lxml-4.2.1

果提示成功安装lxml-4.2.1版本。如果使用pip命令安装网速较慢,可以直接到:https://pypi.python.org/pypi/lxml 下载应的lxml的.whl文件,然后用pip命令进行本地安装:

C:UsersStrive>pip3 install file_path/file_name

Tips需要下载和Python版本对应的lxml版本并且已经安装了whl库。


beautifulsoup库的安装

beautifulsoup同样是一个高效的网页解析库,并且其依赖于lxml库, 在安装beautifulsoup库前先安装好lxml库。可以直接使用pip命令直接安装:

C:UsersStrive>pip3 install beautifulsoup4

beautifulsoup4表示beautifulsoup的第四个版本。等待安装,会出现安装成功提示:

Successfully installed beautifulsoup4-4.6.0

pyquery库的安装

pyquery库同样是一个网页解析库,可以使用pip命令直接安装:

C:UsersStrive>pip3 install pyquery

等待安装,会出现安装成功提示:

Successfully installed cssselect-1.0.3 pyquery-1.4.0

8 pymysql库的安装

pymysql是操作mysql数据库的第三方库,可以用pip命令直接安装:

C:UsersStrive>pip3 install pymysql

等待安装,会出现安装成功提示:

Successfully installed pymysql-0.8.0

pymongo库安装

pymongo是操作Mongodb数据库的第三方库,可以用pip命令直接安装:

C:UsersStrive>pip3 install pymongo

等待安装,会出现安装成功提示:

Successfully installed pymongo-3.6.1

10 redis库的安装

redis是一个非关系型数据库,以键值对的形式存储数据,在分布式爬虫中用于为维护一个公共爬取队列。可以用pip命令直接安装redis库:

C:UsersStrive>pip3 install redis

 等待安装,会出现安装成功提示:

Successfully installed redis-2.10.6

11 flask库的安装

flask是一个web库,爬虫中用于代理的一些设置,设置web服务器,来设置代理的获取或者存储。flask的官网:http://flask.pocoo.org/docs/0.12/ 

以用pip命令直接安装:

C:UsersStrive>pip3 install flask

 等待安装,该库有很多的依赖库需要安装,会出现安装成功提示:

Successfully installed Werkzeug-0.14.1 click-6.7 flask-0.12.2 itsdangerous-0.24

12 django库的安装

django是一个web服务器框架,提供完整的后台管理,接口和路由等。django的官网:https://docs.djangoproject.com/en/2.0/

pip命令直接安装:

C:UsersStrive>pip3 install django

等待安装,出现安装成功提示:

Successfully installed django-2.0.3 pytz-2018.3

13 jupyter库的安装

jupyter是一个运行在网页端的notebook,支持代码编译和markdown语法,用pip命令直接安装:

C:UsersStrive>pip3 install jupyter

等待安装,出现安装成功提示:

Successfully installed jupyter-1.0.0 jupyter-console-5.2.0 qtconsole-4.3.1

然后命令行输入:

C:UsersStrive>jupyter notebook

或者:

C:UsersStrive>ipython notebook

可以启动jupyter


14 scrapy框架安装

14.1 安装环境

计算机系统64位,Python版本3.6.2 32位。

14.2  wheel库安装

于安装.whl后缀文件,直接使用pip命令进行安装:

C:UsersStrive>pip3 install wheel

14.3 lxml库安装

参考第5章lxml库的安装。

14.4 pyOpenSSL库安装

在地址:https://pypi.python.org/pypi/pyOpenSSL#downloads pyOpenSSL-17.5.0-py2.py3-none-any.whl (md5, pgp)文件到本地,然后使用pip命令进行安装:

C:UsersStrive>pip3 install path/pyOpenSSL-17.5.0-py2.py3-none-any.whl

Tips:需要完整的文件路径以及带上文件后缀名.whl

14.5 Twisted库安装

在地址:http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted 下载Twisted‑17.9.0‑cp36‑cp36m‑win32.whl文件到本地,然后使用pip命令进行安装:

C:UsersStrive>pip3 install path/Twisted‑17.9.0‑cp36‑cp36m‑win32.whl

Tips: cp36代表Python版本为3.6,win32代表Python为32位,并不是系统版本是32位,如果Python版本为64为可以下载win_amd64的版本。

14.6 pywin32库安装

在地址:https://sourceforge.net/projects/pywin32/files/pywin32/Build 220/ pywin32-220.win32-py3.6.exe文件到本地,win32代表的是Python版本为32位,若Python版本为64位,可以下载win-amd64的版本。然后执行下载好的exe文件,该文件会自动识别Python的版本以及安装路径,这里下载的Python3.6 32位的版本,会自动识别出来,但是安装程序会报一个如下错误:

Python version 3.6 required, which was not found in the registry

示在系统注册表中找不到3.6版本的Python,但实际上Python是已经安装好并能正常使用。这时需要在注册表将Python3.6的安装路径注册一下,win+r打开运行输入regedit代开注册表,找到HKEY_CURRENT_USERSOFTWAREPythonPythonCore下面有一个名为3.6-32注册项目文件。若本机下载的是win-amd64版本的exe文件,是能通过这个注册项目文件识别出Python的安装路径的,但是安装完成后是不匹配的,无法正常使用。因为我们的Python版本是32位的。所以我们需要在3.6-32的同级目录下新建一个3.6注册项目文件,然后将3.6-32项目下的HKEY_CURRENT_USERSOFTWAREPythonPythonCore3.6-32InstallPathHKEY_CURRENT_USERSOFTWAREPythonPythonCore3.6-32PythonPath注册项目复制到3.6注册项目文件中(我是手动一个一个新建的。。。),然后再运行pywin32-220.win32-py3.6.exe文件,就能正常识别Python3.6的安装路径了。然后进行正常安装就行。安装完成进入Python验证一下:

C:UsersStrive>python3
Python 3.6.2 (v3.6.2:5fd33b5, Jul 8 2017, 04:14:34) [MSC v.1900 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import win32com
>>>

不报错,说明安装成功了。

14.7 scrapy库安装

上述依赖库都安装成功后,使用pip命令直接安装scrapy库:

C:UsersStrive>pip3 install scrapy

待安装完成即可,然后输入scrapy出现如下提示:

C:UsersStrive>scrapy
Scrapy 1.5.0 - no active project

Usage:
    scrapy <command> [options] [args]

Available commands:
    bench        Run quick benchmark test
    fetch        Fetch a URL using the Scrapy downloader
    genspider    Generate new spider using pre-defined templates
    runspider    Run a self-contained spider (without creating a project)
    settings     Get settings values
    shell        Interactive scraping console
    startproject Create new project
    version      Print Scrapy version
    view         Open URL in browser, as seen by Scrapy

    [ more ]     More commands available when run from project directory

Use "scrapy <command> -h" to see more info about a command                

说明scrapy安装成功,可以正常使用。


15 Mongodb的安装和配置

15.1 Mongodb下载

15.2 Mongodb的启动

安装完Mongodb后,将D:PythonMongoDBServer3.6in目录配置到系统环境变量中,就可以直接在控制台中直接使用bin目录下的可执行命令。但是此时在控制台中输入mongo命令,控制台提示连接Mongo失败,原因是安装完成后,没有配置数据存放位置。

15.3 Mongodb的配置

  • Mongodb的目录需求Mongodb需要一个datadb目录来存放数据,一个logs目录来存放日志,一个etc目录来存放配置文件,这三个目录可以配置在任何地方,此时将logs目录配置为data的子目录,将data目录和etc目录配置在bin目录的同级目录下,也就是D:PythonMongoDBServer3.6中。
  • Mongodb所需目录创建:
    • data目录: D:PythonMongoDBServer3.6datadb
    • logs目录: D:PythonMongoDBServer3.6datalogsmongo.log
    • etc目录: D:PythonMongoDBServer3.6etcmongo.config
  • 使用mongod命令配置数据库:
    mongod --dbpath D:PythonMongoDBServer3.6datadb

     在控制台输入上述命令后按下回车,控制台显示:

    I NETWORK [initandlisten] waiting for connections on port 27017

     说明Mongodb启动成功,可以用本地浏览器访问:

    localhost:27017

     结果显示:

    It looks like you are trying to access MongoDB over HTTP on the native driver port.

     机测试上述输入未能成功显示,log显示,但命令行可正常访问数据库,该问题有待解决

    I NETWORK [conn1] Error receiving request from client: SSLHandshakeFailed: SSLHandshakeFailed.

     该命终端窗口不要关闭,令起一个终端,在命令行输入命令:

    mongo

     终端显示:

    MongoDB shell version v3.6.3
    connecting to: mongodb://127.0.0.1:27017
    MongoDB server version: 3.6.3
    >

     成功访问数据库,就此Mongodb初步配置完成。

  • 使用mongod命令配置数据库为系统服务:
    mongod --bind_ip 0.0.0.0 --dbpath D:PythonMongoDBServer3.6datadb --logpath D:PythonMongoDBServer3.6datalogsmongo.log --logappend --port 27017 --serviceName "MongoDB" --serviceDisplayName "MongoDB" --install
    管理员身份打开终端,输入上述命令,回车,然后在系统服务中查看是否有名为MongoDB的服务,可设置为自动启动,那么每次开机就可以直接使用Mongodb数据库了。
  • 使用etcmongo.config配置数据库为系统服务:  
    mongod --config D:PythonMongoDBServer3.6etcmongo.config --serviceName="MongoDB" --serviceDisplayName "MongoDB" --install

    管理员身份打开终端,在终端中输入上述命令,同样可以将Mongodb启动配置为系统服务。其中配置文件mongo.config内容为:

    dbpath=D:PythonMongoDBServer3.6datadb
    logpath=D:PythonMongoDBServer3.6datalogsmongo.log
    port=27017
    logappend=true
    bind_ip=0.0.0.0 

15.4 Mongodb的可视化软件Robomongo


16 AppiumPythonClient库的安装

使用PythonAppiumPythonClient库来操作Appium,此库继承Selenium,使用方法和Selenium有很多相似之处。

  • 下载地址:https://github.com/appium/python-client
  • 安装方法:直接使用pip命令进行安装
    C:UsersStrive>pip3 install Appium-Python-Client
    Collecting Appium-Python-Client
      Downloading https://files.pythonhosted.org/packages/65/f4/b31229c97ecd03015f2e2abd79ee998f0b91977062d559270abda9f1f3fe/Appium-Python-Client-0.28.tar.gz
    Requirement already satisfied: selenium>=2.47.0 in d:pythonpython36-32libsite-packages (from Appium-Python-Client) (3.11.0)
    Building wheels for collected packages: Appium-Python-Client
      Running setup.py bdist_wheel for Appium-Python-Client ... done
      Stored in directory: C:UsersStriveAppDataLocalpipCachewheels6c665afdb958254e1879c10ae6b9c310672c147dd626de286b8a4900
    Successfully built Appium-Python-Client
    Installing collected packages: Appium-Python-Client
    Successfully installed Appium-Python-Client-0.28 
原文地址:https://www.cnblogs.com/strivepy/p/9683971.html