由于最近正在放暑假,所以就自己开始学习python中有关爬虫的技术,因为发现其中需要安装许多库与软件所以就在这里记录一下以避免大家在安装时遇到一些不必要的坑。

一. 相关软件的安装:

  1. homebrew:

homebrew 是mac os系统下的包管理器由于功能齐全所以在这里比较推荐大家安装,安装及使用教程在我的另一篇博客中,在此附上链接 homebrew的安装

   2. anaconda:anaconda是python下的包管理器,支持创建虚拟环境等功能,个人认为比自带的pip好用,安装anaconda可以前往其官网,链接如下:

https://www.continuum.io/downloads,选择python3版本的安装包下载即可。

二. 请求库的安装

requests:由于requests是第三方库,所以需要手动安装,安装过程如下。

1 .相关链接

Github:https://github.com/requests/requests

PyPi:https://pypi.python.org/pypi/requests

官方文档:http://www.python-requests.org

中文文档:http://docs.python-requests.org/zh_CN/latest

2. 安装库,我们使用conda指令进行安装,在终端中输入如下指令即可成功安装requests库

conda install requests

Selenium:是一个自动化的测试工具,利用它可以驱动浏览器执行特定的动作,如过页面的数据通过JavaScript动态加载则需要使用到它,其安装过程如下。

1. 相关链接

官方网站:http://www.selenium.org

Github:https://github.com/seleniumHQ/selenium/tree/master/py

PyPi:https://pypi.python.org/pypi/selenium

官方文档:http://selenium-python.readthdocs.io

中文文档:http://selenium-python-zh.readthedocs.io

2. 安装库,我们同样使用 conda指令进行安装,在终端中输入如下指令即可安装selenium库

conda install selenium

ChromeDriver:应为selenium需要浏览器配合使用,那么如果默认使用的是chrome浏览器,则需要安装chromeDrvier驱动(版本需要与你使用的chrome的版本兼容),其安装过程如下。

1. 相关链接

官方网站:http://sites.google.com/a/chromium.org/chromedriver

下载地址:  http://chromedriver.storage.googleapis.com/index.html

2. 安装chromedriver,由于我们安装了homebrew包管理器,我们就可以直接使用brew指令进行安装,在终端中输入下列代码即可进行安装chromedriver了

brew cask install chromedriver

3. 安装好后,我们可以在程序中进行测试,代码如下

from selenium import webdriver

browser = webdriver.Chrome()

若能正确弹出空白的chrome浏览器,则证明配置没有问题啦!

三. 解析库安装

 lxml:是python的一个解析库,用于解析html和xml并且对xpath表达式提供了支持,是一个很基础的解析库,安装方式如下。

1. 相关链接

官方网站:http://lxml.de

Github:https://github.com/lxml/lxml

PyPI:https://pypi.python.org/pypi/lxml

2.我们使用conda指令进行安装,只需在终端中输入以下代码安装即可

conda install lxml

   BeautifulSoup:你没看错,它叫美丽汤,它可以解析html和xml并支持多种方式操作网页中的标签和属性,非常强大的解析库并且官方文档也很友好,安装方式如下。

1. 相关链接

官方文档:https://www.cremmy.com/software/BeautifulSoup/bs4/doc

中文文档:https://www.cremmy.com/software/BeautifulSoup/bs4/doc.zh

2. 我们依旧使用conda指令进行安装,在终端中输入如下代码安装即可

conda install beautifulsoup4

3. 安装好后,我们可以在程序中测试它的解析功能,代码如下

from urllib.request import urlopen
from bs4 import BeautifulSoup if __name__ == "__main__":
html = urlopen("http://www.cnblogs.com") #urlopen 获取html页面
bs_obj = BeautifulSoup(html) #BeauitfulSoup解析后返回
print(bs_obj.get_text) #返回除标签外的纯文本

    PyQuery:也是解析工具,提供与jquery(几年前非常火热的JavaScript框架)类似的语法解析html同样也支持css选择器,安装方式如下。

1. 相关链接

Github:https://github.com/gawel/pyquery

PyPI:https://pypi.python.org/pypi/pyquery

官方文档:http://pyquery.readthedocs.io

2. 我们仍然使用conda指令安装,但同时也可以使用pip3指令安装,在终端输入如下代码中的一个安装即可

#使用 conda安装
conda install pyquery
#使用 pip3安装
pip3 install pyquery

tesserocr:可以用来识别验证码或者图片的OCR(光学字符识别)解析库,它是对python API的封装,所以安装它需要先安装tesseract,它们的安装方式如下

1. 相关链接

tesserocr Github:https://github.com/sirfz/tesserocr

tesserocr PyPI:https://pypi.python.org/pypi/tesserocr

tesseract 下载地址:http://digi.bib.uni-mannheim.de/tesserocr

tesseract Github:https://github.com/tesseract-ocr/tesseract

tesseract 语言包:https://github.com/tesseract-oct/tessdata

tesseract 文档:https://github.com/tesseract-ocr/tesseract/wiki/Documentation

    2. 我们现需要使用brew指令安装ImageMagick和tesseract库,然后再使用conda指令安装tesserocr库,在终端中按次序输入以下代码即可

# 安装ImageMagick
brew install imagemagick
# 安装 tesseract
brew install tesseract --all-languages
# 安装 tesserocr
conda install tesserocr

3. 安装好后,我们可以在程序中测试它是否能正确运行,代码如下

import tesserocr
from PTL import Image image = Image.open('example.jpeg')
print(tesserocr.image_to_text(image)) #将图片中的文字转换为字符串

好了至此,与python爬虫相关的基础库已经安装完成了,本文中并未涉及scrapy库的安装。因为个人认为还是先不要使用框架自己编写爬虫更能提升自己的编码能力,谢谢大家的阅读!

Mac os 下 python爬虫相关的库和软件的安装的更多相关文章

  1. 在mac os下编译android -相关文章

    1. Mac OS X下编译Android源码 http://blog.csdn.net/bulreed/article/details/22783467 2.MAC OS 编译 Android源代码 ...

  2. MAC OS下使用Xcode进行GLSL编程的配置过程

    整理自之前使用的163博客原创文章. GLSL项目中需要使用GLEW库,因此先要安装GLEW库和在Xcode中配置GLEW.要使GLEW在Xcode中被正确链接,又需要通过MacPorts来安装GLE ...

  3. Mac OS下 Redis2.6.14部署记录

    Mac OS下 Redis2.6.14部署记录 部署一个Redis作为缓存进行验证,记录部署过程. 官网:http://redis.io/,目前最近稳定版为2.6.14  解压,进入目录.按照READ ...

  4. python爬虫之urllib库(一)

    python爬虫之urllib库(一) urllib库 urllib库是python提供的一种用于操作URL的模块,python2中是urllib和urllib2两个库文件,python3中整合在了u ...

  5. mac os 下搭建android开发环境

    mac os 下搭建android开发环境 周银辉 mac os 下搭建android环境比较方便, 如下几个步骤: 1,安装jdk 先搞清楚自己是否已经安装,在命令行下:java -version, ...

  6. mac os 下的sublime --- 快捷键

    mac os 下的sublime ---列模式 http://www.oschina.net/question/249672_161413 触控板也可以的:左手同时按住 Option 和触控板左下角 ...

  7. Mac OS下编写对拍程序

    介绍 对拍是信息学竞赛中重要的技巧,它通过一个效率低下但正确率可以保证的程序,利用庞大的随机生成数据来验证我们的高级算法程序.对拍最大的优势在于可以通过人力所不能及的速度和数量达到验证的效果.下面我们 ...

  8. MAC OS下免费下载YouTube

    YouTube上有很多不错的视频,你感兴趣的视频除了可以加入自己播放列表之外,还可以将其下载到本地收藏起来.推荐这款软件“Xilisoft Download YouTube Video for Mac ...

  9. YII 框架在 MAC OS下 连接数据库失败 提示 DB connection: SQLSTATE[HY000] [2002]

    作者:zccst CDbConnection failed to open the DB connection: SQLSTATE[HY000] [2002] No such file or dire ...

随机推荐

  1. 小白学python-day05-IDE、格式化输出、For While循环、断点、continue、break

    今天是day05,以下是学习总结. 但行努力,莫问前程. ----------------------------------------------------------------------- ...

  2. linux初学者-文件管理篇

    linux初学者-文件管理篇 linux系统的所有东西都是以文件的形式存储在计算机中的,所以linux系统中对文件的管理非常重要.以下介绍一些文件管理的常用方法. 1.文件的建立 文件的建立或者修改文 ...

  3. python正则-re的使用

    今天在刷题的时候用到了正则,用的过程中就感觉有点不太熟练了,很久没有用正则都有点忘了.所以现在呢,我们就一起来review一下python中正则模块re的用法吧. 今天是review,所以一些基础的概 ...

  4. java并发笔记之证明 synchronized锁 是否真实存在

    警告⚠️:本文耗时很长,先做好心理准备 证明:偏向锁.轻量级锁.重量级锁真实存在 由[java并发笔记之java线程模型]链接: https://www.cnblogs.com/yuhangwang/ ...

  5. Angular JS 中的服务注册方法

    在Angular JS中创建服务的几种方法 factory() service() constant() value() provider() factory(name,fn(){}) 该服务为单例的 ...

  6. 在WPF中嵌入WebBrowser可视化页面

    无论是哪种C/S技术,涉及数据可视化就非常的累赘了,当然大神也一定有,只不过面向大多数人,还是通过网页来实现,有的时候不想把这两个功能分开,一般会是客户的原因,所以我们打算在WPF中嵌入WebBrow ...

  7. Android通过辅助功能实现抢微信红包原理简单介绍

    简书文章:https://www.jianshu.com/p/e1099a94b979 附抢红包开源项目地址,代码已全改为Kotlin了,已适配到最新微信7.0.5版本,如果对你有所帮助赏个star吧 ...

  8. 【有容云】PPT | 容器落地之二三事儿

    编者注: 本文为10月29日有容云联合创始人兼研发副总裁江松在 Docker Live时代线下系列-广州站中演讲的PPT,本次线下沙龙为有容云倾力打造Docker Live时代系列主题线下沙龙,每月一 ...

  9. JVM和GC的工作原理

    转载于https://uestc-dpz.github.io JVM Java 虚拟机 Java 虚拟机(Java virtual machine,JVM)是运行 Java 程序必不可少的机制.JVM ...

  10. 关于dfs的套路

    void dfs(答案, 搜索层数, 其他参数) { if (层数==maxdeep) { 更新答案 return; } (剪枝) for(下一层可能的状态){ 更新全局变量表示的状态的变量 dfs( ...