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
- 语言环境错误 export LC_ALL=C , google [https://github.com/nguyenq/tess4j/issues/105]
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