Python3网络爬虫-请求库的安装

Python3网络爬虫-请求库的安装

1、 请求库安装

  • ChromeDrvier安装

    1、 Chrome版本68.0.3440.106 下载ChromeDriver的版本是v2.41 [http://npm.taobao.org/mirrors/chromedriver]

  • Chrome for Linux 安装

    1、 将下载源加入到系统的源列表 (如果返回“地址解析错误”等信息,可以百度搜索其他提供 Chrome 下载的源,用其地址替换掉命令中的地址)

    sudo wget http://www.linuxidc.com/files/repo/google-chrome.list -P /etc/apt/sources.list.d/

    2、 导入谷歌软件的公钥,用于下面步骤中对下载软件进行验证。如果顺利的话,命令将返回“OK”

    wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add -

    3、 对当前系统的可用更新列表进行更新,等待命令执行完成即可

    sudo apt-get update

    4、执行对谷歌的安装

    sudo apt-get install google-chrome-stable

    6.启动

    /usr/bin/google-chrome  (普通用户身份打开)

    /usr/bin/google-chrome --no -sandbox (root用户身份打开,适用于开发)

  • PhantomJS 安装

     wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-1.9.7-linux-x86_64.tar.bz2
    
     tar -xjvf phantomjs-1.9.7-linux-x86_64.tar.bz2
    
  • Ubuntu 命令行测试安装,是一个基于 WebKit 的服务器端 JavaScript API。它全面支持web而不需浏览器支持,其快速,原生支持各种Web标准: DOM 处理, CSS 选择器, JSON, Canvas, 和 SVG。 PhantomJS 可以用于 页面自动化 , 网络监测 , 网页截屏 ,以及无界面测试等

    >>> chrome_options = webdriver.ChromeOptions()
    >>> chrome_options.add_argument('--headless')
    >>> chrome_options.add_argument('--no-sandbox')
    >>> chrome_options.add_argument('--disable-gpu')
    >>> chrome_options.add_argument('--disable-dev-shm-usage')
    >>> browser = webdriver.Chrome(chrome_options=chrome_options) 
    
    
  • requests 库是一个阻塞式 HTTP 请求库,当我们发出一个请求后,程序会一直等待服
    器响应,直到得到响应后,程序才会进行下 步处理

    pip install requests
    
  • aiohttp 就是这样一个提供异步 We 服务的库,从 Python 本开始 on 中加入了 asy c/awa
    关键字,使得回调的写法更加直观和人性 aioh即的异步操作借助于 asy nc await 关键字的写法变 ’ 得更加简情,架构更加清晰 使用异步请求库进行数据抓取时, 会大大提高效率

    pip install aiohttp
    

    2、 解析库安装

  • lxml Python 一个解 支持 HTML XML 解析,支持 XPath 解析方式,而且解析效
    率非常高

    pip install lxml
    
  • Beautiful Soup Python HTML XML 的解析库,我们可以用它来方便地从网页中提取
    数据 它拥有强大的 PI 多样的解析方式

    pip install beautifulsoup4
    
  • pyquery y 样是 个强大的网页解析工具,它提供了和 jQuery 类似的语法来解析 HTML 文梢,支持
    CSS选择器,使用非常方便

    pip install pyquery
    
  • tesserocr OCR ,即 Optical Character Recognition ,光学字符识别, 是指通过扫描字符,然后通过其形状将其翻译成电子文本的过程 对于图形验证码来说,它们都是一些不规则的字符 ,这些字符 实是
    符稍加扭曲变换得到的内容

    #但其实是对 tesseractPython API 封装,所以它的核心是 tesseract ,因此必须首先安装tesseract
    sudo apt-get install -y tesseract-ocr libtesseract-dev libleptonica-dev 
    #语言测试
    (site_test) wujun@wujun-VirtualBox:~$ tesseract --list-langs 
    List of available languages (2):
    eng
    osd
    #安装中文语言包-chi_sim
    git clone https://github.com/tesseract-ocr/tessdata.git 
    sudo mv tessdata/* /usr/share/tesseract-ocr/tessdata 
    #安装tesserocr
    pip install tesserocr pillow
    

    _tesserocr安装报错问题=》tesserocr.cpp:643:10: fatal error: tesseract/osdetect.h: 没有那个文件或目录

    • 问题原因

      • ubuntu 软件仓库下载的tesseract 版本 4.0.0 缺失osdetect.h
    • 解决方法

      google 发现有人遇到过同样的问题,最新的源码包(tesseract 4.1.0-rc1)好像修复了这个问题,下载[https://github.com/tesseract-ocr/tesseract] 源码包自己编译。

      git clone https://github.com/tesseract-ocr/tesseract
      ./autogen.sh 
      ./configure
      make && make install 
      $ ./tesseract --version
      tesseract 4.1.0-rc1
       leptonica-1.76.0
        libgif 5.1.4 : libjpeg 8d (libjpeg-turbo 1.5.2) : libpng 1.6.34 : libtiff 4.0.9 : zlib 1.2.11 : libwebp 0.6.1 : libopenjp2 2.3.0
      $ sudo pip install tesserocr pillow 
      Installing collected packages: tesserocr
        Running setup.py install for tesserocr ... done
      Successfully installed tesserocr-2.4.0
      

_Please make sure the TESSDATA_PREFIX environment variable is set to your “tessdata” directory.

  • 问题原因

    TESSDATA_PREFIX 为设置或没有下载语言包

  • 解决方法

    下载语言包

    git clone https://github.com/tesseract-ocr/tessdata.git
    ##设置tessdata目录
    export TESSDATA_PREFIX ="xxxx"
    

_import tesserocr 报错 : !strcmp(locale, “C”) || !strcmp(locale, “C.UTF-8”):Error:Assert failed:in file baseapi.cpp, line 211

2、 Ubuntu数据库安装

  • MySQL 一个轻量级数据库

    #mysql  Ver 14.14 Distrib 5.7.25, for Linux
    apt-get install mysql-server mysql-client
    

    我安装的时候不提示输入用户名和密码 登录报:“ERROR 1698 (28000): Access denied for user ‘root’@‘localhost’” , 查看/etc/mysql/debian.cnf [https://blog.csdn.net/sinat_21302587/article/details/76870457]

    [client]
    host     = localhost
    user     = debian-sys-maint
    password = gRQAOJjGB6tHagPS
    socket   = /var/run/mysqld/mysqld.sock
    
    mysql -u debian-sys-maint -p gRQAOJjGB6tHagPS
    update mysql.user set authentication_string=password('password') where user='root'and Host = 'localhost';
    
  • MongoDB是由 ++语言编写的非关系型数据库, 是一个基于分布式文件存储的开源数据库系统内容存储形式类似 JSON 对象,它的字段值可以包含其他文档、数组及文档数组,非常灵活

    [https://blog.csdn.net/baronyang/article/details/78838197]

    # 1. 导入MongoDB public GPG Key
    sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5
    
    # 2. 添加软件源 
    echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list
    
    # 3. 更新本地软件包
    sudo apt-get update
    
    # 4. 安装MongoDB
    sudo apt-get install -y mongodb-org
    
    #查看mongod的配置文件,可以看到它默认的数据存储路径、log文件路径、IP接口等并根据需要修改:
    sudo vim /etc/mongod.conf 
    # 1. 启动MongoDB
    sudo service mongod start
    # 2. 验证MongoDB是否启动成功(在/var/log/mongodb/mongod.log文件中看到下面这一行就表示启动成功)
    [initandlisten] waiting for connections on port 27017
    # 3. 停止MongoDB进程
    sudo service mongod stop
    # 4. 重启MongoDB
    sudo service mongod restart
    # 5. 查看MongoDB运行状态
    sudo service mongod status
    # 查看版本
    $ mongod --version
    # 查看帮助信息
    $ mongod --help
    #创建admin ,最高权限
    $mongo
    > show tables
    > 
    > use admin
    switched to db admin
    > db.createUser({user:'admin',pwd:'admin123',roles:[{role:'root',db:'admin'}]})
    Successfully added user: {
            "user" : "admin",
            "roles" : [
                    {
                            "role" : "root",
                            "db" : "admin"
                    }
            ]
    }
    
  • Redis 的安装 Redis 是一个基于 存的高效的非关系型数据库

    #安装
    sudo apt-get -y install redis-server
    #测试是否安装成功
    (site_test) wujun@wujun-VirtualBox:~$ redis-cli
    127.0.0.1:6379> set 'name' 'Germey'
    OK
    127.0.0.1:6379> get name
    "Germey"
    127.0.0.1:6379> 
    #重启、启动、停止
    sudo /etc/init.d/redis-server restart/start/stop
    

3、存储库安装

  • PyMySQL

    #安装
    pip install pymysql
    #测试
    (site_test) wujun@wujun-VirtualBox:~$ python 
    Python 3.6.7 (default, Oct 22 2018, 11:32:17) 
    [GCC 8.2.0] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import pymysql
    >>> pymysql.VERSION
    (0, 9, 3, None)
    >>> 
    
  • PyMongo

    #安装(注意!!是PyMongo 不是pymongo)
    sudo pip install PyMongo
    #测试
    (site_test) wujun@wujun-VirtualBox:~$ python
    Python 3.6.7 (default, Oct 22 2018, 11:32:17) 
    [GCC 8.2.0] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import pymongo
    >>> pymongo.version
    '3.7.2'
    
    
  • redis-py

    #安装
    sudo pip install redis
    #测试
    (site_test) wujun@wujun-VirtualBox:~$ python
    Python 3.6.7 (default, Oct 22 2018, 11:32:17) 
    [GCC 8.2.0] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import redis
    >>> redis.VERSION
    (3, 2, 1)
    
    
  • RedisDump 是一个用于 Redis 数据导人 导出的工具,是基于 Ruby 实现的,所以要安装 RedisDump需要先安装 Ruby

    #安装ruby
    sudo apt  install ruby
    #安装RedisDump 
    sudo gem install redis-dump
    
    

4、Web库

  • Flask

    #安装
    sudo pip install flask
    
  • Tornado 一个异步的WEB框架,通过使用非阻塞的IO流,它可以支持成千上外的连接

    #安装
    sudo pip install tornado
    

5、 App 爬取相关库的安装

  • Charles 的安装

    Charles 是个网络抓包工具,相比 Fiddler ,其功能更为强大且跨平台支持得更好 ,所以这里选用它来作为主 的移动端抓包工具。

    
    
  • mitmproxy 的安装 mitmproxy 个支持 HTTP HTTPS 的抓包程序, Fiddl harles 的功能, 只不过它控制台的形式操作

    sudo pip install  mitmproxy 
    

猜你喜欢

转载自blog.csdn.net/weixin_39555721/article/details/88838985
今日推荐