Python 爬虫相关环境

Python 爬虫相关环境_第1张图片

一时兴起,想用 python 玩儿一下爬虫,顺便体验 python 这门语言。


前言

Python 学习,推荐使用 Anaconda ,不过我习惯的 JetBreain 公司的工具,所以还安装了 PyCharm ,在使用时因为依赖导入失败,搞了好半天,原因是下载的 Python 解释器太多,已经傻傻分不清了~

  1. 首先,Mac 系统自带 Python 路径为/System/Library/Frameworks/Python.framework/Version 

    这里可能会有多个 Python 版本,里面 Current 存放系统当前 Python 版本

    (注:若使用python --version命令是查看用户当前python版本而不是系统python版本)

  2. 安装 Anaconda3 后,Python 3.6 的目录 ~/anaconda/anaconda3/python.app/Contents/MacOS/python

  3. Homebrew是一个包管理器,他将工具统统安装到了 /usr/local/Cellar目录中,并在 /usr/local/bin 中创建符号链接。

  4. 在玩 Tensortflow 时,安装过的虚拟环境 ~/anaconda/anaconda3/envs/tensorflow/bin/python

说实话,还是第一次接触到这种同一个语言,这么多环境的情况,感觉很蒙圈~

因此,PyCharm 选择解释器时,连路径在哪都不知道,浪费了很多时间。


Python

在使用 Python 语言编写程序时,需要下载一个 Python 解释器,除此之外还有 Python 包文件,其中包括自带包第三方包

第三方包都放在 site-packages 文件夹里面

一个 Python 环境中需要有一个解释器, 和一个包集合
而 Python 存在多个版本,2.x 和 3.x 完全不兼容,有时又需要切换环境,这么多麻烦事情,自然需要一个工具来管理,Anaconda 就是来管理你的安装环境和各种工具包的。


Anaconda

Anaconda 是专注于数据分析的Python发行版本,包含了 condaPython 等190多个科学包及其依赖项。

Python 我们都知道,而 conda 是什么呢?

conda 是开源包(packages)和虚拟环境(environment)的管理系统。

  • packages 管理: 可以使用 conda 来安装、更新 、卸载工具包 ,并且它更关注于数据科学相关的工具包。在安装 anaconda 时就预先集成了像 Numpy、Scipy、 pandas、Scikit-learn 这些在数据分析中常用的包。另外值得一提的是,conda 并不仅仅管理Python的工具包,它也能安装非python的包。比如在新版的 Anaconda 中就可以安装R语言的集成开发环境 Rstudio。
  • 虚拟环境管理: 在conda中可以建立多个虚拟环境,用于隔离不同项目所需的不同版本的工具包,以防止版本上的冲突。对纠结于 Python 版本的同学们,我们也可以建立 Python2 和 Python3 两个环境,来分别运行不同版本的 Python 代码。

推荐使用 Anaconda ,一次性安装所有的相关文件,简单方便。


Anaconda 的下载地址

这里有两个版本,一个 Python 3.6 ,另一个 Python 2.7

推荐使用新的 Python 3.6 ,因为 Python 2.x 迟早会停止维护。

根据提示进行安装后,会出现这么一些文件:

  • Anaconda Navigtor :用于管理工具包和环境的图形用户界面,后续涉及的众多管理命令也可以在 Navigator 中手工实现。
  • Jupyter notebook :基于web的交互式计算环境,可以编辑易于人们阅读的文档,用于展示数据分析的过程。
  • qtconsole :一个可执行 IPython 的仿终端图形界面程序,相比 Python Shell 界面,qtconsole 可以直接显示代码生成的图形,实现多行代码输入执行,以及内置许多有用的功能和函数。
  • spyder :一个使用Python语言、跨平台的、科学运算集成开发环境。


安装完成后,首先配置 Anaconda 的环境变量,打开环境变量文件

open ~/.bash_profile

添加一行

# Anaconda3  此处填写 Anaconda 的安装路径
export PATH="/Users/deemons/anaconda/anaconda3/bin:$PATH"

保存后,更新配置文件

source ~/.bash_profile

然后,输入 python ,查看配置是否生效

➜  ~ python
Python 3.6.3 |Anaconda custom (64-bit)| (default, Oct  6 2017, 12:04:38) 
[GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 

可以看到,现在的 python 默认改为 Anaconda 里面自带的 Python 了。

我们还需要对所有工具包进行升级,以避免可能发生的错误。打开终端,在命令行中输入:

conda upgrade --all

等待着所有工具更新完成后,就可以愉快的使用了 Python 了。


PyCharm 配置

Anaconda 已经自带了 web 版编辑器了,打开 Anaconda 就可以看到 Jupyter

Python 爬虫相关环境_第2张图片

但还是不习惯用这个,对用惯了 IDEA 的我来说,PyCharm 是最好的选择。

PyCharm 下载地址

这个也没什么好说的,下载后按照提示安装好。

现在,关键的来了。

我得将 PyCharm 的解释器设置成 Anaconda ,否则,使用 Anaconda 下载下来的那么多第三方包在PyCharm 都不能正常导入使用。
打开 PyCharm ,进入设置,选择 Anaconda 的 Python 解释器:
Python 爬虫相关环境_第3张图片

如此,PyCharm 就可以正常使用了。


爬虫环境安装

首先,爬虫需要安装哪些环境?
参考了Python爬虫小白入门(四)PhatomJS+Selenium第一篇 系列文章后,需要安装这些包:

  • requests
    requests 是 Python 中的网络请求库。
  • beautifulsoup

    beautifulsoup 库可以方便的解析 HTML 的内容,也就说,可以方便提前所有可见的网页内容。

  • Selenium

    Selenium是一个自动化测试框架,它能够模拟人工操作,比如能在浏览器中点击按钮、在输入框中输入文本、自动填充表单、还能进行浏览器窗口的切换、对弹出窗口进行操作。


requests

这个库可以直接使用 conda 进行安装:

conda install requests

这里是 requests 的英文官方文档 和 中文官方文档 。

基本的用法如下:

import requests #导入requests库

r = requests.get('https://deemons.cn') # 向目标 url 地址发送 get 请求,返回一个response对象
print(r.text) #r.text是http response的网页HTML

通过 reueests 发起网络请求,然后获取网站的 HTML 信息。

beautifulsoup

beautifulsoup 库 有多个版本,这里安装 beautifulsoup4

conda install beautifulsoup4

这里是 beautifulsoup4 的官方文档

同时,还需要安装 lxml 来配合工作。

conda install lxml

lxml 是一个解析器,beautifulsoup4 可以使用它来解析HTML,然后提取内容。

如果,不安装 lxmlbeautifulsoup4 会使用 Python 内置的解析器。

文档解析器对照表如下:

解析器 使用方法 优势 劣势
Python标准库 BeautifulSoup(markup,”html.parser”) Python的内置标准库 2. 执行速度适 3. 中文档容错能力强 Python 2.7.3 or 3.2.2)前 的版本中文档容错能力差
lxml HTML 解析器 BeautifulSoup(markup,”lxml”) 速度快 2. 文档容错能力强 需要安装C语言库
lxml XML 解析器 BeautifulSoup(markup,[“lxml-xml”]) BeautifulSoup(markup,”xml”) 速度快 2. 唯一支持XML的解析器 需要安装C语言库
html5lib BeautifulSoup(markup,”html5lib”) 最好的容错性 2. 以浏览器的方式解析文档 3. 生成HTML5格式的文档 速度慢,不依赖外部扩展


Selenium

Selenium 这是一个自动化测试框架,能模拟人工在浏览器上的操作。安装方式

conda install selenium

Selenium Python 语言官网:Selenium with Python

如果需要使用 Chorme 浏览器,必须下载当前 Chorme 版本相匹配的驱动,Chorme 驱动下载地址

chrome和 chromedriver 的版本映射表

chromedriver版本 支持的Chrome版本
v2.40 v66-68
v2.39 v66-68
v2.38 v65-67
v2.37 v64-66
v2.36 v63-65
v2.35 v62-64
v2.34 v61-63
v2.33 v60-62
v2.32 v59-61
v2.31 v58-60
v2.30 v58-60

Mac 下,将下载的文件解压,提取出 chromedriver 文件,并移动到 /usr/bin/ 目录下

➜  ~ cd /usr/bin
➜  bin open .
➜  bin chromedriver --version

同时,可以配置 chromedriver 变成类似 PhatomJs 无界面形式。

from selenium import webdriver

# 创建chrome参数对象
opt = webdriver.ChromeOptions()

# 把chrome设置成无界面模式,不论windows还是linux都可以,自动适配对应参数
opt.set_headless()

# 创建chrome无界面对象
driver = webdriver.Chrome(options=opt)

# 访问百度
driver.get('https://baidu.com/')

#打印内容
print(driver.page_source)

或者,还可以这么写

#selenium:3.12.0
#webdriver:2.38
#chrome.exe: 65.0.3325.181(正式版本) (32 位)

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument('window-size=1920x3000') #指定浏览器分辨率
chrome_options.add_argument('--disable-gpu') #谷歌文档提到需要加上这个属性来规避bug
chrome_options.add_argument('--hide-scrollbars') #隐藏滚动条, 应对一些特殊页面
chrome_options.add_argument('blink-settings=imagesEnabled=false') #不加载图片, 提升速度
chrome_options.add_argument('--headless') #浏览器不提供可视化页面. linux下如果系统不支持可视化不加这条会启动失败
chrome_options.binary_location = r"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" #手动指定使用的浏览器位置

driver=webdriver.Chrome(chrome_options=chrome_options)
driver.get('https://www.baidu.com')

print('hao123' in driver.page_source)

driver.close() #切记关闭浏览器,回收资源

到此,爬虫的基本环境算是搭建好了。


参考

Python爬虫小白入门(一)写在前面 系列

使用python3的Selenium启动chromedriver

Mac下安装Anaconda,以及在PyCharm中的配置

selenium使用chrome浏览器

致Python初学者:Anaconda入门使用指南

Anaconda完全入门指南

从无到有:一周搞定爬虫(Python3.x + Selenium + Chrome + ChromeDriver)


你可能感兴趣的:(Python)