二、Anaconda3 安装 爬虫库 selenium(windows环境)

Anaconda3 安装 爬虫库 selenium(windows环境)

skyHdd

于 2020-02-04 10:59:32 发布

3519
收藏 6
分类专栏: 解决Python相关的问题 文章标签: anaconda selenium
版权

解决Python相关的问题
专栏收录该内容
31 篇文章1 订阅
订阅专栏
一、Anaconda 安装selenium库
#使用命令:conda或pip
conda install selenium

pip install selenium

1
2
3
4
5
用 Chrome 浏览器来测试
#用 Chrome 浏览器来测试

from selenium import webdriver

browser = webdriver.Chrome()
browser.get(‘http://www.baidu.com/’)

1
2
3
4
5
6
7
运行这段代码,会自动打开浏览器,然后访问百度。
如果程序执行错误,浏览器没有打开,那么应该是没有装 Chrome 浏览器或者 Chrome 驱动没有配置在环境变量里。接步骤二。

二、配置ChromeDriver
ChromeDriver下载
下载地址:
http://npm.taobao.org/mirrors/chromedriver/(可用)

chromedriver的版本要与你使用的chrome版本(下载地址中选择对应的chrome浏览器)对应:

查看chrome版本:
查看chrome浏览器版本

ChromeDriver存放路径
将chromedriver.exe放置在anaconda安装路径下的Scripts目录下,例如:F:\Anaconda\Scripts

三、测试selenium库是否安装成功
#用 Chrome 浏览器来测试

from selenium import webdriver

browser = webdriver.Chrome()
browser.get(‘http://www.baidu.com/’)
1
2
3
4
5
6
运行这段代码,会自动打开浏览器,然后访问百度。

参考文档
获取chrome浏览器版本信息
selenium 安装与 chromedriver安装
在windows+anaconda3环境下安装selenium

skyHdd
关注

3

2

6

专栏目录
selenium安装
11-17
开源自动化测试工具selenium的使用教程
anaconda安装selenium
HappyCharlotte的博客
241
参考网址为https://blog.csdn.net/demon119/article/details/107041096/ 通过anaconda中的QT console执行pip install selenium 下载Chrome版本对应的chromedriver, Chrome的chromedriver下载是通过chromedriver mirror,要注意下载Mac64_m1版本,具体网址为https://chromedriver.chromium.org/downloads 以及https://c
评论2

 

m0_58015531
4 月前
回复

直接放在谷歌浏览器根目录,不放在\Anaconda\Scripts可以使用
————————————————

selenium库(一):在windows+anaconda3环境下安装selenium

BQW_

于 2018-07-31 11:56:32 发布

8199
收藏 19
分类专栏: Python爬虫 文章标签: selenium driver chrome 下载 驱动
版权

Python爬虫
专栏收录该内容
22 篇文章5 订阅
订阅专栏
一、安装selenium
使用命令行命令:conda或pip
+ conda install selenium
+ pip install selenium

二、下载Drivers
1.selenium需要驱动程序与所选的浏览器进行交互,例如安装了Chrome浏览器就需要下ChromeDriver

2.不同浏览器的下载地址

浏览器 驱动下载地址
Chrome https://sites.google.com/a/chromium.org/chromedriver/downloads
Edge https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
Firefox https://github.com/mozilla/geckodriver/releases
Safari https://webkit.org/blog/6900/webdriver-support-in-safari-10/
3.驱动程序的存放路径

以Chrome为例,将chromedriver.exe放置在anaconda安装路径下的Scripts目录下,例如:D:\Anaconda3\Scripts

三、检验是否安装成功
如果下面的代码运行后能打开浏览器,证明安装成功

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
1
2
3
四、可能遇到的问题
1.安装完selenium后,matplotlib无法使用,使用pip/conda uninstall matplotlib卸载后在重新安装matplotlib

2.chromedriver.exe的版本应该与Chrome浏览器的版本相一致。在浏览器中输入chrome://version/可以查看浏览器版本,以下是版本对应关系

ChromeDriver v2.40 (2018-06-07)———-Supports Chrome v66-68
ChromeDriver v2.39 (2018-05-30)———-Supports Chrome v66-68
ChromeDriver v2.38 (2018-04-17)———-Supports Chrome v65-67
ChromeDriver v2.37 (2018-03-16)———-Supports Chrome v64-66
ChromeDriver v2.36 (2018-03-02)———-Supports Chrome v63-65
ChromeDriver v2.35 (2018-01-10)———-Supports Chrome v62-64
————————————————
版权声明:本文为CSDN博主「BQW_」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/bqw18744018044/article/details/81300709

一、python3 爬虫环境搭建之 Anaconda 和 Scrapy

一、python3 爬虫环境搭建之 Anaconda 和 Scrapy

supercrys

于 2018-04-27 21:33:04 发布

11590
收藏 11
分类专栏: python3 爬虫 文章标签: Anaconda Scrapy Windows10 conda install -c conda-forge s
版权

python3 爬虫
专栏收录该内容
4 篇文章0 订阅
订阅专栏
python3 只是爬虫开发的编程语言,开发爬虫还需要很多其他环境,比如 IDE 工具,常用库等等. 根据我的使用体验,推荐如下环境搭建步骤,桌面环境为 Windows 10.

 

安装 Anaconda
Anaconda 是一个集成度很高的基于 python 的数据科学平台,无论在开发爬虫还是机器学习等方面,都游刃有余. Anaconda 包含 250 多个数据科学包和自带的包管理工具 conda,一行命令就可以轻松安装绝大部分依赖库, 比如 Scikit-Learn, Scipy, Tensorflow 等.

Anaconda 的下载地址

安装这个软件跟着提示走就可以,唯一要注意的地方就是软件的安装目录最好是英文的,并且不能有空格. 安装好后找到如下图所示三个图标.

 

比较常用的就是这三个应用了, Anaconda 在安装好后已经为我们配好了自己的系统环境和 python3 的环境,通常安装依赖的话只需要在命令行终端 Anaconda Prompt 直接执行 conda 命令就好.

比如,可以使用下面的命令查看当前配置的环境路径:

>conda env list
# conda environments:
#
base * D:\ProgramFiles\Anaconda
使用下面的命令查看不同路径下的 python:

>where python
D:\ProgramFiles\Anaconda\python.exe
查看当前使用的 python 的版本信息:

>python –version
Python 3.6.3 :: Anaconda custom (64-bit)
查看当前环境下已经安装好的包:

>conda list
# packages in environment at D:\ProgramFiles\Anaconda:
#
# Name Version Build Channel
_ipyw_jlab_nb_ext_conf 0.1.0 py36he6757f0_0
alabaster 0.7.10 py36hcd07829_0
anaconda custom py36h363777c_0
anaconda-client 1.6.14 py36_0
anaconda-navigator 1.8.3 py36_0
anaconda-project 0.8.0 py36h8b3bf89_0
asn1crypto 0.22.0 py36h8e79faa_1
astroid 1.5.3 py36h9d85297_0
astropy 2.0.2 py36h06391c4_4
babel 2.5.0 py36h35444c1_0
backports 1.0 py36h81696a8_1
backports.shutil_get_terminal_size 1.0.0 py36h79ab834_2
beautifulsoup4 4.6.0 py36hd4cc5e8_1
bitarray 0.8.1 py36h6af124b_0
bkcharts 0.2 py36h7e685f7_0
blaze 0.11.3 py36h8a29ca5_0
bleach 2.0.0 py36h0a7e3d6_0
bokeh 0.12.10 py36h0be3b39_0
boto 2.48.0 py36h1a776d2_1
bottleneck 1.2.1 py36hd119dfa_0
bzip2 1.0.6 vc14hdec8e7a_1 [vc14]
ca-certificates 2017.08.26 h94faf87_0
cachecontrol 0.12.3 py36hfe50d7b_0
certifi 2017.7.27.1 py36h043bc9e_0
cffi 1.10.0 py36hae3d1b5_1
chardet 3.0.4 py36h420ce6e_1
click 6.7 py36hec8c647_0
cloudpickle 0.4.0 py36h639d8dc_0
clyent 1.2.2 py36hb10d595_1
colorama 0.3.9 py36h029ae33_0
comtypes 1.1.2 py36heb9b3d1_0
conda 4.5.1 py36_0
conda-build 3.0.27 py36h309a530_0
conda-env 2.6.0 h36134e3_1
conda-verify 2.0.0 py36h065de53_0
console_shortcut 0.1.1 h6bb2dd7_3
contextlib2 0.5.5 py36he5d52c0_0
cryptography 2.0.3 py36h123decb_1
curl 7.55.1 vc14hdaba4a4_3 [vc14]
cycler 0.10.0 py36h009560c_0
cython 0.26.1 py36h18049ac_0
cytoolz 0.8.2 py36h547e66e_0
dask 0.15.3 py36h396fcb9_0
dask-core 0.15.3 py36hd651449_0
datashape 0.5.4 py36h5770b85_0
decorator 4.1.2 py36he63a57b_0
distlib 0.2.5 py36h51371be_0
distributed 1.19.1 py36h8504682_0
docutils 0.14 py36h6012d8f_0
entrypoints 0.2.3 py36hfd66bb0_2
et_xmlfile 1.0.1 py36h3d2d736_0
fastcache 1.0.2 py36hffdae1b_0
filelock 2.0.12 py36hd7ddd41_0
flask 0.12.2 py36h98b5e8f_0
flask-cors 3.0.3 py36h8a3855d_0
freetype 2.8 vc14h17c9bdf_0 [vc14]
get_terminal_size 1.0.0 h38e98db_0
gevent 1.2.2 py36h342a76c_0
glob2 0.5 py36h11cc1bd_1
greenlet 0.4.12 py36ha00ad21_0
h5py 2.7.0 py36hfbe0a52_1
hdf5 1.10.1 vc14hb361328_0 [vc14]
heapdict 1.0.0 py36h21fa5f4_0
html5lib 0.999999999 py36ha09b1f3_0
icc_rt 2017.0.4 h97af966_0
icu 58.2 vc14hc45fdbb_0 [vc14]
idna 2.6 py36h148d497_1
imageio 2.2.0 py36had6c2d2_0
imagesize 0.7.1 py36he29f638_0
intel-openmp 2018.0.0 hcd89f80_7
ipykernel 4.6.1 py36hbb77b34_0
ipython 6.1.0 py36h236ecc8_1
ipython_genutils 0.2.0 py36h3c5d0ee_0
ipywidgets 7.0.0 py36h2e74ada_0
isort 4.2.15 py36h6198cc5_0
itsdangerous 0.24 py36hb6c5a24_1
jdcal 1.3 py36h64a5255_0
jedi 0.10.2 py36hed927a0_0
jinja2 2.9.6 py36h10aa3a0_1
jpeg 9b vc14h4d7706e_1 [vc14]
jsonschema 2.6.0 py36h7636477_0
jupyter 1.0.0 py36h422fd7e_2
jupyter_client 5.1.0 py36h9902a9a_0
jupyter_console 5.2.0 py36h6d89b47_1
jupyter_core 4.3.0 py36h511e818_0
jupyterlab 0.27.0 py36h34cc53b_2
jupyterlab_launcher 0.4.0 py36h22c3ccf_0
lazy-object-proxy 1.3.1 py36hd1c21d2_0
libiconv 1.15 vc14h29686d3_5 [vc14]
libpng 1.6.32 vc14h5163883_3 [vc14]
libssh2 1.8.0 vc14hcf584a9_2 [vc14]
libtiff 4.0.8 vc14h04e2a1e_10 [vc14]
libxml2 2.9.4 vc14h8fd0f11_5 [vc14]
libxslt 1.1.29 vc14hf85b8d4_5 [vc14]
llvmlite 0.20.0 py36_0
locket 0.2.0 py36hfed976d_1
lockfile 0.12.2 py36h0468280_0
lxml 4.1.0 py36h0dcd83c_0
lzo 2.10 vc14h0a64fa6_1 [vc14]
markupsafe 1.0 py36h0e26971_1
matplotlib 2.1.0 py36h11b4b9c_0
mccabe 0.6.1 py36hb41005a_1
menuinst 1.4.10 py36h42196fb_0
mistune 0.7.4 py36h4874169_0
mkl 2018.0.0 h36b65af_4
mkl-service 1.1.2 py36h57e144c_4
mpmath 0.19 py36he326802_2
msgpack-python 0.4.8 py36h58b1e9d_0
multipledispatch 0.4.9 py36he44c36e_0
navigator-updater 0.1.0 py36h8a7b86b_0
nbconvert 5.3.1 py36h8dc0fde_0
nbformat 4.4.0 py36h3a5bc1b_0
networkx 2.0 py36hff991e3_0
nltk 3.2.4 py36hd0e0a39_0
nose 1.3.7 py36h1c3779e_2
notebook 5.0.0 py36hd9fbf6f_2
numba 0.35.0 np113py36_10
numexpr 2.6.2 py36h7ca04dc_1
numpy 1.13.3 py36ha320f96_0
numpydoc 0.7.0 py36ha25429e_0
odo 0.5.1 py36h7560279_0
olefile 0.44 py36h0a7bdd2_0
openpyxl 2.4.8 py36hf3b77f6_1
openssl 1.0.2l vc14hcac20b0_2 [vc14]
packaging 16.8 py36ha0986f6_1
pandas 0.20.3 py36hce827b7_2
pandoc 1.19.2.1 hb2460c7_1
pandocfilters 1.4.2 py36h3ef6317_1
partd 0.3.8 py36hc8e763b_0
path.py 10.3.1 py36h3dd8b46_0
pathlib2 2.3.0 py36h7bfb78b_0
patsy 0.4.1 py36h42cefec_0
pep8 1.7.0 py36h0f3d67a_0
pickleshare 0.7.4 py36h9de030f_0
pillow 4.2.1 py36hdb25ab2_0
pip 9.0.1 py36hadba87b_3
pkginfo 1.4.1 py36hb0f9cfa_1
ply 3.10 py36h1211beb_0
progress 1.3 py36hbeca8d3_0
prompt_toolkit 1.0.15 py36h60b8f86_0
psutil 5.4.0 py36h4e662fb_0
py 1.4.34 py36ha4aca3a_1
pycodestyle 2.3.1 py36h7cc55cd_0
pycosat 0.6.3 py36h413d8a4_0
pycparser 2.18 py36hd053e01_1
pycrypto 2.6.1 py36he68e6e2_1
pycurl 7.43.0 py36h086bf4c_3
pyflakes 1.6.0 py36h0b975d6_0
pygments 2.2.0 py36hb010967_0
pylint 1.7.4 py36ha4e6ded_0
pyodbc 4.0.17 py36h0006bc2_0
pyopenssl 17.2.0 py36h15ca2fc_0
pyparsing 2.2.0 py36h785a196_1
pyqt 5.6.0 py36hb5ed885_5
pysocks 1.6.7 py36h698d350_1
pytables 3.4.2 py36h71138e3_2
pytest 3.2.1 py36h753b05e_1
python 3.6.3 h9e2ca53_1
python-dateutil 2.6.1 py36h509ddcb_1
pytz 2017.2 py36h05d413f_1
pywavelets 0.5.2 py36hc649158_0
pywin32 221 py36h9c10281_0
pyyaml 3.12 py36h1d1928f_1
pyzmq 16.0.2 py36h38c27d9_2
qt 5.6.2 vc14h6f8c307_12 [vc14]
qtawesome 0.4.4 py36h5aa48f6_0
qtconsole 4.3.1 py36h99a29a9_0
qtpy 1.3.1 py36hb8717c5_0
requests 2.18.4 py36h4371aae_1
rope 0.10.5 py36hcaf5641_0
ruamel_yaml 0.11.14 py36h9b16331_2
scikit-image 0.13.0 py36h6dffa3f_1
scikit-learn 0.19.1 py36h53aea1b_0
scipy 0.19.1 py36h7565378_3
seaborn 0.8.0 py36h62cb67c_0
setuptools 36.5.0 py36h65f9e6e_0
simplegeneric 0.8.1 py36heab741f_0
singledispatch 3.4.0.3 py36h17d0c80_0
sip 4.18.1 py36h9c25514_2
six 1.11.0 py36h4db2310_1
snowballstemmer 1.2.1 py36h763602f_0
sortedcollections 0.5.3 py36hbefa0ab_0
sortedcontainers 1.5.7 py36ha90ac20_0
sphinx 1.6.3 py36h9bb690b_0
sphinxcontrib 1.0 py36hbbac3d2_1
sphinxcontrib-websupport 1.0.1 py36hb5e5916_1
spyder 3.2.4 py36h8845eaa_0
sqlalchemy 1.1.13 py36h5948d12_0
sqlite 3.20.1 vc14h7ce8c62_1 [vc14]
statsmodels 0.8.0 py36h6189b4c_0
sympy 1.1.1 py36h96708e0_0
tblib 1.3.2 py36h30f5020_0
testpath 0.3.1 py36h2698cfe_0
tk 8.6.7 vc14hb68737d_1 [vc14]
toolz 0.8.2 py36he152a52_0
tornado 4.5.2 py36h57f6048_0
traitlets 4.3.2 py36h096827d_0
typing 3.6.2 py36hb035bda_0
unicodecsv 0.14.1 py36h6450c06_0
urllib3 1.22 py36h276f60a_0
vc 14 h2379b0c_2
vs2015_runtime 14.0.25123 hd4c4e62_2
wcwidth 0.1.7 py36h3d5aa90_0
webencodings 0.5.1 py36h67c50ae_1
werkzeug 0.12.2 py36h866a736_0
wheel 0.29.0 py36h6ce6cde_1
widgetsnbextension 3.0.2 py36h364476f_1
win_inet_pton 1.0.1 py36he67d7fd_1
win_unicode_console 0.5 py36hcdbd4b5_0
wincertstore 0.2 py36h7fe50ca_0
wrapt 1.10.11 py36he5f5981_0
xlrd 1.1.0 py36h1cb58dc_1
xlsxwriter 1.0.2 py36hf723b7d_0
xlwings 0.11.4 py36hd3cf94d_0
xlwt 1.3.0 py36h1a4751e_0
yaml 0.1.7 vc14hb31d195_1 [vc14]
zict 0.1.3 py36h2d8e73e_0
zlib 1.2.11 vc14h1cdd9ab_1 [vc14]
安装 Scrapy
Scrapy 是爬虫的常用框架之一, 官网的安装提示如下:

conda install -c conda-forge scrapy
但是,我按照上述方法安装后出现如下问题:

CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://conda.anaconda.org/conda-forge/win-64/libssh2-1.8.0-vc14_2.tar.bz2>
Elapsed: –

An HTTP error occurred when trying to retrieve this URL.
HTTP errors are often intermittent, and a simple retry will get you on your way.

CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://conda.anaconda.org/conda-forge/noarch/hyperlink-17.3.1-py_0.tar.bz2>
Elapsed: –

An HTTP error occurred when trying to retrieve this URL.
HTTP errors are often intermittent, and a simple retry will get you on your way.

CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://conda.anaconda.org/conda-forge/win-64/pydispatcher-2.0.5-py36_0.tar.bz2>
Elapsed: –

An HTTP error occurred when trying to retrieve this URL.
HTTP errors are often intermittent, and a simple retry will get you on your way.

CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://conda.anaconda.org/conda-forge/win-64/yaml-0.1.7-vc14_0.tar.bz2>
Elapsed: –

An HTTP error occurred when trying to retrieve this URL.
HTTP errors are often intermittent, and a simple retry will get you on your way.

CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://conda.anaconda.org/conda-forge/win-64/qt-5.6.2-vc14_1.tar.bz2>
Elapsed: –

An HTTP error occurred when trying to retrieve this URL.
HTTP errors are often intermittent, and a simple retry will get you on your way.
有一些包安装失败,原因可能是上述命令使用的资源通道下载速度太慢导致连接不上,于是改用如下方法:

先查看 conda 上有没有提供当前 python 版本的 scrapy 包

>conda search scrapy
Loading channels: done
# Name Version Build Channel
scrapy 0.16.4 py26_0 pkgs/free
scrapy 0.16.4 py27_0 pkgs/free
scrapy 0.24.4 py27_0 pkgs/free
scrapy 1.0.1 py27_0 pkgs/free
scrapy 1.0.3 py27_0 pkgs/free
scrapy 1.1.1 py27_0 pkgs/free
scrapy 1.1.1 py34_0 pkgs/free
scrapy 1.1.1 py35_0 pkgs/free
scrapy 1.1.1 py36_0 pkgs/free
scrapy 1.3.3 py27_0 pkgs/free
scrapy 1.3.3 py35_0 pkgs/free
scrapy 1.3.3 py36_0 pkgs/free
scrapy 1.4.0 py27h4eaa785_1 pkgs/main
scrapy 1.4.0 py35h054a469_1 pkgs/main
scrapy 1.4.0 py36h764da0a_1 pkgs/main
scrapy 1.5.0 py27_0 pkgs/main
scrapy 1.5.0 py35_0 pkgs/main
scrapy 1.5.0 py36_0 pkgs/main
我的 python 版本是 3.6,可以看到列表最下面一行就是 python3.6 最新的 scrapy 版本,于是使用如下命令安装:

>conda install scrapy
Solving environment: done

## Package Plan ##

environment location: D:\ProgramFiles\Anaconda

added / updated specs:
– scrapy

The following packages will be downloaded:

package | build
—————————|—————–
attrs-17.4.0 | py36_0 41 KB
pyasn1-0.4.2 | py36h22e697c_0 101 KB
hyperlink-18.0.0 | py36_0 62 KB
openssl-1.0.2o | h8ea7d77_0 5.4 MB
pyasn1-modules-0.2.1 | py36hd1453cb_0 86 KB
pytest-runner-4.2 | py36_0 12 KB
ca-certificates-2018.03.07 | 0 155 KB
scrapy-1.5.0 | py36_0 329 KB
automat-0.6.0 | py36hc6d8c19_0 67 KB
constantly-15.1.0 | py36_0 13 KB
cssselect-1.0.3 | py36_0 28 KB
incremental-17.5.0 | py36he5b1da3_0 25 KB
certifi-2018.4.16 | py36_0 143 KB
pydispatcher-2.0.5 | py36_0 18 KB
————————————————————
Total: 6.4 MB

The following NEW packages will be INSTALLED:

attrs: 17.4.0-py36_0
automat: 0.6.0-py36hc6d8c19_0
constantly: 15.1.0-py36_0
cssselect: 1.0.3-py36_0
hyperlink: 18.0.0-py36_0
incremental: 17.5.0-py36he5b1da3_0
parsel: 1.4.0-py36_0
pyasn1: 0.4.2-py36h22e697c_0
pyasn1-modules: 0.2.1-py36hd1453cb_0
pydispatcher: 2.0.5-py36_0
pytest-runner: 4.2-py36_0
queuelib: 1.5.0-py36_0
scrapy: 1.5.0-py36_0
service_identity: 17.0.0-py36_0
twisted: 17.5.0-py36_0
w3lib: 1.19.0-py36_0
zope: 1.0-py36_0
zope.interface: 4.5.0-py36hfa6e2cd_0

The following packages will be UPDATED:

ca-certificates: 2017.08.26-h94faf87_0 –> 2018.03.07-0
certifi: 2017.7.27.1-py36h043bc9e_0 –> 2018.4.16-py36_0
openssl: 1.0.2l-vc14hcac20b0_2 –> 1.0.2o-h8ea7d77_0

Proceed ([y]/n)? y

选择 y 后继续安装:

Downloading and Extracting Packages
attrs 17.4.0################################################################################################### | 100%
pyasn1 0.4.2################################################################################################### | 100%
hyperlink 18.0.0############################################################################################### | 100%
openssl 1.0.2o################################################################################################# | 100%
pyasn1-modules 0.2.1########################################################################################### | 100%
pytest-runner 4.2############################################################################################## | 100%
ca-certificates 2018.03.07##################################################################################### | 100%
scrapy 1.5.0################################################################################################### | 100%
automat 0.6.0################################################################################################## | 100%
constantly 15.1.0############################################################################################## | 100%
cssselect 1.0.3################################################################################################ | 100%
incremental 17.5.0############################################################################################# | 100%
certifi 2018.4.16############################################################################################## | 100%
pydispatcher 2.0.5############################################################################################# | 100%
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
安装完成,最后可以通过

>conda list

 

查看Scrapy安装是否成功。
————————————————

版权声明:本文为CSDN博主「supercrys」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/crysdem/article/details/80112709

Python 爬虫的工具列表大全

即然提到了爬虫,就从网上理了一份python爬虫相关的包。包含与网页抓取和数据处理的Python库,需要的朋友可以参考下

网络

  • 通用
    • urllib -网络库(stdlib)。
    • requests -网络库。
    • grab – 网络库(基于pycurl)。
    • pycurl – 网络库(绑定libcurl)。
    • urllib3 – Python HTTP库,安全连接池、支持文件post、可用性高。
    • httplib2 – 网络库。
    • RoboBrowser – 一个简单的、极具Python风格的Python库,无需独立的浏览器即可浏览网页。
    • MechanicalSoup -一个与网站自动交互Python库。
    • mechanize -有状态、可编程的Web浏览库。
    • socket – 底层网络接口(stdlib)。
    • Unirest for Python – Unirest是一套可用于多种语言的轻量级的HTTP库。
    • hyper – Python的HTTP/2客户端。
    • PySocks – SocksiPy更新并积极维护的版本,包括错误修复和一些其他的特征。作为socket模块的直接替换。
  • 异步
    • treq – 类似于requests的API(基于twisted)。
    • aiohttp – asyncio的HTTP客户端/服务器(PEP-3156)。

网络爬虫框架

  • 功能齐全的爬虫
    • grab – 网络爬虫框架(基于pycurl/multicur)。
    • scrapy – 网络爬虫框架(基于twisted),不支持Python3。
    • pyspider – 一个强大的爬虫系统。
    • cola – 一个分布式爬虫框架。
  • 其他
    • portia – 基于Scrapy的可视化爬虫。
    • restkit – Python的HTTP资源工具包。它可以让你轻松地访问HTTP资源,并围绕它建立的对象。
    • demiurge – 基于PyQuery的爬虫微框架。

HTML/XML解析器

  • 通用
    • lxml – C语言编写高效HTML/ XML处理库。支持XPath。
    • cssselect – 解析DOM树和CSS选择器。
    • pyquery – 解析DOM树和jQuery选择器。
    • BeautifulSoup – 低效HTML/ XML处理库,纯Python实现。
    • html5lib – 根据WHATWG规范生成HTML/ XML文档的DOM。该规范被用在现在所有的浏览器上。
    • feedparser – 解析RSS/ATOM feeds。
    • MarkupSafe – 为XML/HTML/XHTML提供了安全转义的字符串。
    • xmltodict – 一个可以让你在处理XML时感觉像在处理JSON一样的Python模块。
    • xhtml2pdf – 将HTML/CSS转换为PDF。
    • untangle – 轻松实现将XML文件转换为Python对象。
  • 清理
    • Bleach – 清理HTML(需要html5lib)。
    • sanitize – 为混乱的数据世界带来清明。

文本处理

用于解析和操作简单文本的库。

  • 通用
  • difflib – (Python标准库)帮助进行差异化比较。
  • Levenshtein – 快速计算Levenshtein距离和字符串相似度。
  • fuzzywuzzy – 模糊字符串匹配。
  • esmre – 正则表达式加速器。
  • ftfy – 自动整理Unicode文本,减少碎片化。
  • 转换
  • unidecode – 将Unicode文本转为ASCII。
  • 字符编码
  • uniout – 打印可读字符,而不是被转义的字符串。
  • chardet – 兼容 Python的2/3的字符编码器。
  • xpinyin – 一个将中国汉字转为拼音的库。
  • pangu.py – 格式化文本中CJK和字母数字的间距。
  • Slug化
  • awesome-slugify – 一个可以保留unicode的Python slugify库。
  • python-slugify – 一个可以将Unicode转为ASCII的Python slugify库。
  • unicode-slugify – 一个可以将生成Unicode slugs的工具。
  • pytils – 处理俄语字符串的简单工具(包括pytils.translit.slugify)。
  • 通用解析器
  • PLY – lex和yacc解析工具的Python实现。
  • pyparsing – 一个通用框架的生成语法分析器。
  • 人的名字
  • python-nameparser -解析人的名字的组件。
  • 电话号码
  • phonenumbers -解析,格式化,存储和验证国际电话号码。
  • 用户代理字符串
  • python-user-agents – 浏览器用户代理的解析器。
  • HTTP Agent Parser – Python的HTTP代理分析器。

特定格式文件处理

解析和处理特定文本格式的库。

  • 通用
  • tablib – 一个把数据导出为XLS、CSV、JSON、YAML等格式的模块。
  • textract – 从各种文件中提取文本,比如 Word、PowerPoint、PDF等。
  • messytables – 解析混乱的表格数据的工具。
  • rows – 一个常用数据接口,支持的格式很多(目前支持CSV,HTML,XLS,TXT – 将来还会提供更多!)。
  • Office
  • python-docx – 读取,查询和修改的Microsoft Word2007/2008的docx文件。
  • xlwt / xlrd – 从Excel文件读取写入数据和格式信息。
  • XlsxWriter – 一个创建Excel.xlsx文件的Python模块。
  • xlwings – 一个BSD许可的库,可以很容易地在Excel中调用Python,反之亦然。
  • openpyxl – 一个用于读取和写入的Excel2010 XLSX/ XLSM/ xltx/ XLTM文件的库。
  • Marmir – 提取Python数据结构并将其转换为电子表格。
  • PDF
  • PDFMiner – 一个从PDF文档中提取信息的工具。
  • PyPDF2 – 一个能够分割、合并和转换PDF页面的库。
  • ReportLab – 允许快速创建丰富的PDF文档。
  • pdftables – 直接从PDF文件中提取表格。
  • Markdown
  • Python-Markdown – 一个用Python实现的John Gruber的Markdown。
  • Mistune – 速度最快,功能全面的Markdown纯Python解析器。
  • markdown2 – 一个完全用Python实现的快速的Markdown。
  • YAML
  • PyYAML – 一个Python的YAML解析器。
  • CSS
  • cssutils – 一个Python的CSS库。
  • ATOM/RSS
  • feedparser – 通用的feed解析器。
  • SQL
  • sqlparse – 一个非验证的SQL语句分析器。
  • HTTP
  • HTTP
  • http-parser – C语言实现的HTTP请求/响应消息解析器。

Python客栈送红包、纸质书

  • 微格式
  • opengraph – 一个用来解析Open Graph协议标签的Python模块。
  • 可移植的执行体
  • pefile – 一个多平台的用于解析和处理可移植执行体(即PE)文件的模块。
  • PSD
  • psd-tools – 将Adobe Photoshop PSD(即PE)文件读取到Python数据结构。

自然语言处理

处理人类语言问题的库。

  • NLTK -编写Python程序来处理人类语言数据的最好平台。
  • Pattern – Python的网络挖掘模块。他有自然语言处理工具,机器学习以及其它。
  • TextBlob – 为深入自然语言处理任务提供了一致的API。是基于NLTK以及Pattern的巨人之肩上发展的。
  • jieba – 中文分词工具。
  • SnowNLP – 中文文本处理库。
  • loso – 另一个中文分词库。
  • genius – 基于条件随机域的中文分词。
  • langid.py – 独立的语言识别系统。
  • Korean – 一个韩文形态库。
  • pymorphy2 – 俄语形态分析器(词性标注+词形变化引擎)。
  • PyPLN – 用Python编写的分布式自然语言处理通道。这个项目的目标是创建一种简单的方法使用NLTK通过网络接口处理大语言库。

浏览器自动化与仿真

  • selenium – 自动化真正的浏览器(Chrome浏览器,火狐浏览器,Opera浏览器,IE浏览器)。
  • Ghost.py – 对PyQt的webkit的封装(需要PyQT)。
  • Spynner – 对PyQt的webkit的封装(需要PyQT)。
  • Splinter – 通用API浏览器模拟器(selenium web驱动,Django客户端,Zope)。

多重处理

  • threading – Python标准库的线程运行。对于I/O密集型任务很有效。对于CPU绑定的任务没用,因为python GIL。
  • multiprocessing – 标准的Python库运行多进程。
  • celery – 基于分布式消息传递的异步任务队列/作业队列。
  • concurrent-futures – concurrent-futures 模块为调用异步执行提供了一个高层次的接口。

异步

异步网络编程库

  • asyncio – (在Python 3.4 +版本以上的 Python标准库)异步I/O,时间循环,协同程序和任务。
  • Twisted – 基于事件驱动的网络引擎框架。
  • Tornado – 一个网络框架和异步网络库。
  • pulsar – Python事件驱动的并发框架。
  • diesel – Python的基于绿色事件的I/O框架。
  • gevent – 一个使用greenlet 的基于协程的Python网络库。
  • eventlet – 有WSGI支持的异步框架。
  • Tomorrow – 异步代码的奇妙的修饰语法。

队列

  • celery – 基于分布式消息传递的异步任务队列/作业队列。
  • huey – 小型多线程任务队列。
  • mrq – Mr. Queue – 使用redis & Gevent 的Python分布式工作任务队列。
  • RQ – 基于Redis的轻量级任务队列管理器。
  • simpleq – 一个简单的,可无限扩展,基于Amazon SQS的队列。
  • python-gearman – Gearman的Python API。

云计算

  • picloud – 云端执行Python代码。
  • dominoup.com – 云端执行R,Python和matlab代码。

电子邮件

电子邮件解析库

  • flanker – 电子邮件地址和Mime解析库。
  • Talon – Mailgun库用于提取消息的报价和签名。

网址和网络地址操作

解析/修改网址和网络地址库。

  • URL
    • furl – 一个小的Python库,使得操纵URL简单化。
    • purl – 一个简单的不可改变的URL以及一个干净的用于调试和操作的API。
    • urllib.parse – 用于打破统一资源定位器(URL)的字符串在组件(寻址方案,网络位置,路径等)之间的隔断,为了结合组件到一个URL字符串,并将“相对URL”转化为一个绝对URL,称之为“基本URL”。
    • tldextract – 从URL的注册域和子域中准确分离TLD,使用公共后缀列表。
  • 网络地址
    • netaddr – 用于显示和操纵网络地址的Python库。

网页内容提取

提取网页内容的库。

  • HTML页面的文本和元数据
    • newspaper – 用Python进行新闻提取、文章提取和内容策展。
    • html2text – 将HTML转为Markdown格式文本。
    • python-goose – HTML内容/文章提取器。
    • lassie – 人性化的网页内容检索工具
    • micawber – 一个从网址中提取丰富内容的小库。
    • sumy -一个自动汇总文本文件和HTML网页的模块
    • Haul – 一个可扩展的图像爬虫。
    • python-readability – arc90 readability工具的快速Python接口。
    • scrapely – 从HTML网页中提取结构化数据的库。给出了一些Web页面和数据提取的示例,scrapely为所有类似的网页构建一个分析器。
  • 视频
    • youtube-dl – 一个从YouTube下载视频的小命令行程序。
    • you-get – Python3的YouTube、优酷/ Niconico视频下载器。
  • 维基
    • WikiTeam – 下载和保存wikis的工具。

WebSocket

用于WebSocket的库。

  • Crossbar – 开源的应用消息传递路由器(Python实现的用于Autobahn的WebSocket和WAMP)。
  • AutobahnPython – 提供了WebSocket协议和WAMP协议的Python实现并且开源。
  • WebSocket-for-Python – Python 2和3以及PyPy的WebSocket客户端和服务器库。

DNS解析

  • dnsyo – 在全球超过1500个的DNS服务器上检查你的DNS。
  • pycares – c-ares的接口。c-ares是进行DNS请求和异步名称决议的C语言库。

计算机视觉

  • OpenCV – 开源计算机视觉库。
  • SimpleCV – 用于照相机、图像处理、特征提取、格式转换的简介,可读性强的接口(基于OpenCV)。
  • mahotas – 快速计算机图像处理算法(完全使用 C++ 实现),完全基于 numpy 的数组作为它的数据类型。

代理服务器

  • shadowsocks – 一个快速隧道代理,可帮你穿透防火墙(支持TCP和UDP,TFO,多用户和平滑重启,目的IP黑名单)。
  • tproxy – tproxy是一个简单的TCP路由代理(第7层),基于Gevent,用Python进行配置。

其他Python工具列表

  • awesome-python
  • pycrumbs
  • python-github-projects
  • python_reference
  • pythonidae

selenium+chromedriver在服务器运行的详细教程

这篇文章主要介绍了selenium+chromedriver在服务器运行的详细方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

1.前言

想使用selenium从网站上抓数据,但有时候使用phantomjs会出错。chrome现在也有无界面运行模式了,以后就可以不用phantomjs了。

但在服务器安装chrome时出现了一些错误,这里总结一下整个安装过程

2.ubuntu上安装chrome

1
2
3
4
5
6
# Install Google Chrome
# https://askubuntu.com/questions/79280/how-to-install-chrome-browser-properly-via-command-line
sudo apt-get install libxss1 libappindicator1 libindicator7
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome*.deb # Might show "errors", fixed by next line
sudo apt-get install -f

这时应该已经安装好了,用下边的命行运行测试一下:

google-chrome –headless –remote-debugging-port=9222 https://chromium.org –disable-gpu

这里是使用headless模式进行远程调试,ubuntu上大多没有gpu,所以–disable-gpu以免报错。
之后可以再打开一个ssh连接到服务器,使用命令行访问服务器的本地的9222端口:

curl http://localhost:9222

如果安装好了,会看到调试信息。但我这里会报一个错误,下边是错误的解决办法。

1)可能的错误解决方法

运行完上边的命令可能会报一个不能在root下运行chrome的错误。这个时候使用下边方设置一下chrome

1.找到google-chrome文件

我的位置位于/opt/google/chrome/

2.用vi打开google-chrome文件

vi /opt/google/chrome/google-chrome

在文件中找到

exec -a “$0” “$HERE/chrome” “$@”

3.在后面添加 –user-data-dir –no-sandbox即可,整条shell命令就是

exec -a “$0” “$HERE/chrome” “$@” –user-data-dir –no-sandbox

4.再重新打开google-chrome即可正常访问!

3.安装chrome驱动chromedriver

下载chromedriver

chromedriver提供了操作chrome的api,是selenium控制chrome的桥梁。

chromedriver最好安装最新版的,记的我一开始安装的不是最新版的,会报一个错。用最新版的chromedriver就没有问题,最新版的可以在下边地址找到
https://sites.google.com/a/chromium.org/chromedriver/downloads

我写这个文章时最新版是2.37

wget https://chromedriver.storage.googleapis.com/2.37/chromedriver_linux64.zip
unzip chromedriver_linux64.zip

到这里服务器端的无界面版chrome就安装好了。

4.无界面版chrome使用方法

1
2
3
4
5
6
7
8
9
10
11
12
13
from selenium import webdriver
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
chrome_options.add_argument("user-agent='Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36'")
wd = webdriver.Chrome(chrome_options=chrome_options,executable_path='/home/chrome/chromedriver')
wd.get("https://www.163.com")
content = wd.page_source.encode('utf-8')
print content
wd.quit()

这里chrome_options中的第三项设置参数,使用这个设置可以避免网站检测到你使用的是无界模式进行反抓取。

下边另外的两项设置,不进行设置时在桌面版linux系统,或者mac系统上会打开有界面的chrome.调试时可以注释掉下边两行使用有界面版chrome来调试程序。

1
2
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')

在linux中安装selenium+chrome

主要参照百度的一些内容加上自己的实际操作,对自己遇到的几个问题进行总结:

第一个问题:安装selenium—sudo pip install selenium

显示:You are using pip version 8.1.1, however version 18.0 is available.

pip的版本太低

解决方案:

更新pip

运行代码:sudo pip install –upgrade pip

 

第二个问题:安装chrome–

第一步:sudo apt-get install libxss1 libappindicator1 libindicator7

第二步:wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb

第三步:sudo qpt-get install -f

第四步:sudo dpkg -i google-chrome-stable_current_amd64.deb

第三个问题:安装chromedriver—

第一步:wget -N http://chromedriver.storage.googleapis.com/2.29/chromedriver_linux64.zip

第二步:unzip chromedriver_linux64.zip

第三步:chmod +x chromedriver

第四步:sudo mv -f chromedriver /usr/local/share/chromedriver

第五步: sudo ln -s /usr/local/share/chromedriver /usr/local/bin/chromedriver

第六步:sudo ln -s /usr/local/share/chromedriver /usr/bin/chromedrive

在敲代码时一定要仔细,任何字母的错都将导致最后出错。

Selenium启动Chrome时配置选项详解

 更新时间:2020年03月18日 11:25:14   作者:廖剑秋
这篇文章主要介绍了Selenium启动Chrome时配置选项详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

Selenium操作浏览器是不加载任何配置的,网上找了半天,关于Firefox加载配置的多点,Chrome资料很少,下面是关于加载Chrome配置的方法:

一、加载所有Chrome配置

用Chrome地址栏输入chrome://version/,查看自己的“个人资料路径”,然后在浏览器启动时,调用这个配置文件,代码如下:

1
2
3
4
5
#coding=utf-8
from selenium import webdriver
option = webdriver.ChromeOptions()
option.add_argument('--user-data-dir=C:\Users\Administrator\AppData\Local\Google\Chrome\User Data') #设置成用户自己的数据目录
driver = webdriver.Chrome(chrome_options=option)

二、修改浏览器的User-Agent来伪装你的浏览器访问手机m站

1
2
3
4
5
6
#coding=utf-8
from selenium import webdriver
option = webdriver.ChromeOptions()
option.add_argument('--user-agent=iphone')
driver = webdriver.Chrome(chrome_options=option)
driver.get('http://www.taobao.com/')

三、浏览器启动时安装crx扩展

1
2
3
4
5
6
#coding=utf-8
from selenium import webdriver
option = webdriver.ChromeOptions()
option.add_extension('d:\crx\AdBlock_v2.17.crx') #自己下载的crx路径
driver = webdriver.Chrome(chrome_options=option)
driver.get('http://www.taobao.com/')

可以去https://sites.google.com/a/chromium.org/chromedriver/capabilities查看更多,或者去http://stackoverflow.com/查找。

下边是收集的一些配置信息:

一些Chrome的地址栏命令(这些命令会不停的变动,所有不一定都是好用的)

在Chrome的浏览器地址栏中输入以下命令,就会返回相应的结果。这些命令包括查看内存状态,浏览器状态,网络状态,DNS服务器状态,插件缓存等等。
about:version – 显示当前版本
about:memory – 显示本机浏览器内存使用状况
about:plugins – 显示已安装插件
about:histograms – 显示历史记录
about:dns – 显示DNS状态
about:cache – 显示缓存页面
about:gpu -是否有硬件加速
about:flags -开启一些插件 //使用后弹出这么些东西:“请小心,这些实验可能有风险”,不知会不会搞乱俺的配置啊!
chrome://extensions/ – 查看已经安装的扩展
其他的一些关于Chrome的实用参数及简要的中文说明(使用方法同上,当然也可以在shell中使用)
–user-data-dir=”[PATH]” 指定用户文件夹User Data路径,可以把书签这样的用户数据保存在系统分区以外的分区。
–disk-cache-dir=”[PATH]“ 指定缓存Cache路径
–disk-cache-size= 指定Cache大小,单位Byte
–first run 重置到初始状态,第一次运行
–incognito 隐身模式启动
–disable-javascript 禁用Javascript
–omnibox-popup-count=”num” 将地址栏弹出的提示菜单数量改为num个。我都改为15个了。
–user-agent=”xxxxxxxx” 修改HTTP请求头部的Agent字符串,可以通过about:version页面查看修改效果
–disable-plugins 禁止加载所有插件,可以增加速度。可以通过about:plugins页面查看效果
–disable-javascript 禁用JavaScript,如果觉得速度慢在加上这个
–disable-java 禁用java
–start-maximized 启动就最大化
–no-sandbox 取消沙盒模式
–single-process 单进程运行
–process-per-tab 每个标签使用单独进程
–process-per-site 每个站点使用单独进程
–in-process-plugins 插件不启用单独进程
–disable-popup-blocking 禁用弹出拦截
–disable-plugins 禁用插件
–disable-images 禁用图像
–incognito 启动进入隐身模式
–enable-udd-profiles 启用账户切换菜单
–proxy-pac-url 使用pac代理 [via 1/2]
–lang=zh-CN 设置语言为简体中文
–disk-cache-dir 自定义缓存目录
–disk-cache-size 自定义缓存最大值(单位byte)
–media-cache-size 自定义多媒体缓存最大值(单位byte)
–bookmark-menu 在工具 栏增加一个书签按钮
–enable-sync 启用书签同步

常用:

–single-process 单进程运行Google Chrome

–start-maximized 启动Google Chrome就最大化

–disable-java 禁止Java

–no-sandbox  非沙盒模式运行

全部:(下面的没有进行翻译,仔细看下应该都看得懂. ~ ~)

–disable-hang-monitor

Suppresses hang monitor dialogs in renderer processes.

–disable-metrics

Completely disables UMA metrics system.

–disable-metrics-reporting

Disables only the sending of metrics reports. In contrast to kDisableMetrics, this executes all the code that a normal client would use for reporting, except the report is dropped rather than sent to the server. This is useful for finding issues in the metrics code during UI and performance tests.

–assert-test

Causes the browser process to throw an assertion on startup.

–renderer-assert-test

Causes the renderer process to throw an assertion on launch.

–crash-test

Performs a crash test when the browser is starte.

–renderer-crash-test

Causes the renderer process to crash on launch.

–renderer-startup-dialog

Use this argument when you want to see the child processes as soon as Chrome start.

–plugin-startup-dialog

Causes the plugin process to display a dialog on launch.

–testshell-startup-dialog

Causes the test shell process to display a dialog on launch.

–plugin-launcher

Specifies a command that should be used to launch the plugin process. Useful

for running the plugin process through purify or quantify. Ex:

–plugin-launcher=”path\to\purify /Run=yes.

–plugin-launche.

–channel

The value of this switch tells the child process which

IPC channel the browser expects to use to communicate with it.

–testing-channel

The value of this switch tells the app to listen for and broadcast

testing-related messages on IPC channel with the given ID.

–homepage

The value of this switch specifies which page will be displayed

in newly-opened tabs. We need this for testing purposes so

that the UI tests don’t depend on what comes up for http://google.com.

–start-renderers-manually

When this switch is present, the browser will throw up a dialog box

asking the user to start a renderer process independently rather

than launching the renderer itself. (This is useful for debugging..

–renderer

Causes the process to run as renderer instead of as browser.

–renderer-path

Path to the executable to run for the renderer subproces.

–plugin

Causes the process to run as plugin hos.

–single-process

Runs the renderer and plugins in the same process as the browse.

–process-per-tab

Runs each set of script-connected tabs (i.e., a BrowsingInstance) in its own

renderer process. We default to using a renderer process for each

site instance (i.e., group of pages from the same registered domain with

script connections to each other).

–process-per-site

Runs a single process for each site (i.e., group of pages from the same

registered domain) the user visits. We default to using a renderer process

for each site instance (i.e., group of pages from the same registered

domain with script connections to each other).

–in-process-plugins

Runs plugins inside the renderer proces.

–no-sandbox

Runs the renderer outside the sandbox.

–safe-plugins

Runs the plugin processes inside the sandbox.

–trusted-plugins

Excludes these plugins from the plugin sandbox.

This is a comma separated list of plugin dlls name and activex clsid.

–test-sandbox

Runs the security test for the sandbox.

–user-data-dir

Specifies the user data directory, which is where the browser will look

for all of its state.

–app

Specifies that the associated value should be launched in “application” mode.

–upload-file

Specifies the file that should be uploaded to the provided application. This

switch is expected to be used with –app option.

–dom-automation

Specifies if the dom_automation_controller_ needs to be bound in the

renderer. This binding happens on per-frame basis and hence can potentially

be a performance bottleneck. One should only enable it when automating

dom based tests.

–plugin-path

Tells the plugin process the path of the plugin to loa.

–js-flags

Specifies the flags passed to JS engin.

–geoid

The GeoID we should use. This is normally obtained from the operating system

during first run and cached in the preferences afterwards. This is a numeric

value; see http://msdn.microsoft.com/en-us/library/ms776390.aspx .

–lang

The language file that we want to try to open. Of the form

language[-country] where language is the 2 letter code from ISO-639.

–debug-children

Will add kDebugOnStart to every child processes. If a value is passed, it

will be used as a filter to determine if the child process should have the

kDebugOnStart flag passed on or not.

–debug-on-start

Causes the process to start the JIT debugger on itself (mainly used by –debug-children.

–wait-for-debugger-children

Will add kWaitForDebugger to every child processes. If a value is passed, it

will be used as a filter to determine if the child process should have the

kWaitForDebugger flag passed on or not.

–wait-for-debugger

Waits for a debugger for 60 second.

–log-filter-prefix

Will filter log messages to show only the messages that are prefixed

with the specified valu.

–enable-logging

Python客栈送红包、纸质书

Force logging to be enabled. Logging is disabled by default in release

builds.

–dump-histograms-on-exit

Dump any accumualted histograms to the log when browser terminates (requires

logging to be enabled to really do anything). Used by developers and test

scripts.

–disable-logging

Force logging to be disabled. Logging is enabled by default in debug

builds.

–log-level

Sets the minimum log level. Valid values are from 0 to 3:

INFO = 0, WARNING = 1, LOG_ERROR = 2, LOG_FATAL = 3.

–remote-shell-port

Enable remote debug / automation shell on the specified por.

–uninstall

Runs un-installation steps that were done by chrome first-run.

–omnibox-popup-count

Number of entries to show in the omnibox popup.

–uninstallomnibox-popup-count

Removes the previous set suggestion coun.

–automation-channel

The value of this switch tells the app to listen for and broadcast

automation-related messages on IPC channel with the given ID.

–restore-last-session

Indicates the last session should be restored on startup. This overrides

the preferences value and is primarily intended for testing.

–record-mode

–playback-mode

Chrome supports a playback and record mode. Record mode saves *everything*

to the cache. Playback mode reads data exclusively from the cache. This

allows us to record a session into the cache and then replay it at will.

–no-events

Don’t record/playback events when using record & playback.

–hide-icons

–show-icons

Make Windows happy by allowing it to show “Enable access to this program”

checkbox in Add/Remove Programs->Set Program Access and Defaults. This

only shows an error box because the only way to hide Chrome is by

uninstalling it.

–make-default-browser

Make Chrome default browse.

–proxy-server

Use a specified proxy server, overrides system settings. This switch only

affects HTTP and HTTPS requests.

–dns-log-details

–dns-prefetch-disable

Chrome will support prefetching of DNS information. Until this becomes

the default, we’ll provide a command line switch.

–debug-print

Enables support to debug printing subsystem.

–allow-all-activex

Allow initialization of all activex controls. This is only to help website

developers test their controls to see if they are compatible in Chrome.

Note there’s a duplicate value in activex_shared.cc (to avoid

dependency on chrome module). Please change both locations at the same time.

–disable-dev-tools

Browser flag to disable the web inspector for all renderers.

–always-enable-dev-tools

Enable web inspector for all windows, even if they’re part of the browser.

Allows us to use our dev tools to debug browser windows itself.

–memory-model

Configure Chrome’s memory model.

Does chrome really need multiple memory models? No. But we get a lot

of concerns from individuals about how the changes work on *their*

system, and we need to be able to experiment with a few choices.

–tab-count-to-load-on-session-restore

Used to set the value of SessionRestore::num_tabs_to_load_. See session_restore.h for details.

const wchar_t kTabCountToLoadOnSessionRestore[] .

–memory-profile

Enable dynamic loading of the Memory Profiler DLL, which will trace

all memory allocations during the run.

–enable-file-cookies

By default, cookies are not allowed on file://. They are needed in for

testing, for example page cycler and layout tests. See bug 1157243.

–start-maximized

Start the browser maximized, regardless of any previous settings.

TODO(pjohnson): Remove this once bug 1137420 is fixed. We are using this

as a workaround for not being able to use moveTo and resizeTo on a

top-level window.

–enable-watchdog

Spawn threads to watch for excessive delays in specified message loops.

User should set breakpoints on Alarm() to examine problematic thread.

Usage: -enable-watchdog=[ui][io]

Order of the listed sub-arguments does not matter.

–first-run

Display the First Run experience when the browser is started, regardless of

whether or not it’s actually the first run.

–message-loop-strategy

–message-loop-histogrammer

Enable histograming of tasks served by MessageLoop. See about:histograms/Loop

for results, which show frequency of messages on each thread, including APC

count, object signalling count, etc.

–import

Perform importing from another browser. The value associated with this

setting encodes the target browser and what items to import.

–silent-dump-on-dcheck

Change the DCHECKS to dump memory and continue instead of crashing.

This is valid only in Release mode when –enable-dcheck is specified.

–disable-prompt-on-repost

Normally when the user attempts to navigate to a page that was the result of

a post we prompt to make sure they want to. This switch may be used to

disable that check. This switch is used during automated testing.

–disable-popup-blocking

Disable pop-up blocking.

–disable-javascript

Don’t execute JavaScript (browser JS like the new tab page still runs).

–disable-java

Prevent Java from running.

–disable-plugins

Prevent plugins from running.

–disable-images

Prevent images from loading.

–use-lf-heap

Use the low fragmentation heap for the CRT.

–gears-plugin-path

Debug only switch to specify which gears plugin dll to load.

–gears-in-renderer

Switch to load Gears in the renderer process.

–enable-p13n

–javascript-debugger-path

Allow loading of the javascript debugger UI from the filesystem.

–new-http

Enable new HTTP stack.

到此这篇关于Selenium启动Chrome时配置选项详解的文章就介绍到这了,更多相关Selenium启动Chrome内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

Selenium常见异常解析及解决方案示范

 更新时间:2020年04月10日 12:01:38   作者:临渊
这篇文章主要介绍了Selenium常见异常解析及解决方案示范,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

pycharm中导入selenium报错

现象: pycharm中输入from selenium import webdriver, selenium标红

原因1: pycharm使用的虚拟环境中没有安装selenium,

解决方法: 在pycharm中通过设置或terminal面板重新安装selenium

原因2: 当前项目下有selenium.py,和系统包名冲突导致,

解决方法,重命名这个文件

驱动及本地服务类异常

未找到响应的浏览器驱动

WebDriverException: Message: 'geckodriver' executable needs to be in PATH.

WebDriverException: Message: 'chromedriver' executable needs to be in PATH.

原因: 查找不到对应的浏览器驱动

解决方法: 下载浏览器对应版本的chromedriver或geckodrivergeckodriver

放到脚本当前文件夹下或将路径配置到环境变量中, 或放到Python目录的Scripts下(一般情况下Python的Scripts目录在环境变量中), 或使用浏览器选项options指定驱动路径

未找到浏览器

WebDriverException: Message Can not connect to the Service chromedriver
org.openqa.selenium.WebDriverException: Failed to connect to binary FirefoxBinary

原因: 在默认路径下未找到Firefox浏览器

解决方法: 重新安装Firefox浏览器

驱动和浏览器不匹配

SessionNotCreatedException: Message: session not created:
this version of ChromeDriver only supports Chrome version 76

原因: 当前使用chromedriver只支持Chrome76版本

 

解决方法: 查看本地Chrome浏览器的版本, 下载对应的chromedriver

驱动被防火墙拦截

WebDriverException: Message: Can not connect to the Service IEDriverServer.exe

原因: iedriverserver.exe被防火墙拦截

解决方法: 防火墙设置允许

连接不上chromedriver服务

WebDriverException: Message: Can not connect ot the Service chromedriver

原因: 脚本通过127.0.0.1这个ip访问本地chromedriver服务, hosts中未配置 127.0.0.1指向localhost

解决办法: 配置本地hosts, 添加:127.0.0.1 localhost

6.RemoteDriverServerException: 远程服务器异常, 解决方法: 确认webdriver.Remote()中的远程Webdriver服务是否OK

7. ErrorInResponseException: Webdriver服务器响应异常, 解决方法, 根据具体报错信息分析

找不到类异常: 定位/获取属性/切换警告框,Frame, 窗口

  1. NoSuchElementException: 找不到元素, 解决方法: 前面加上sleep等待后重试,或换一种定位方式
  2. NoSuchAttributeException: 元素没有这个属性, 解决方法: 确认定位到的元素是否目标元素, 检查属性拼写
  3. NoAlertPresentException:没有找到alert弹出框, 解决方法: 观察页面,查看是否有弹框出现, 加上等待或作为偶现元素处理
  4. NoSuchFrameException:没有找到指定的frame或iframe, 解决方法: 查看拼写或切换使用frame的id/name/index/定位到的frame
  5. NoSuchWindowException: 没找到窗口句柄指定的窗口, 解决方法: 查看使用的窗口句柄变量拼写
  6. UnexpectedAlertPresentException: 出现了弹框而未处理, 解决方法: 切换到警告框并处理, 如果偶现,使用try…except处理偶现弹框
  7. InvalidSwitchToTargetException: 切换到指定frame或窗口报错, 解决方法: 查看相应的frame或窗口是否能定位到
  8. UnexpectedTagNameException: 使用Tag Name不合法, 解决方法: 检查拼写或使用css selector/xpath
  9. TimeoutException:查找元素或操作超时, 解决方法, 稍后重试

元素操作异常类: 隐藏/不可操作状态

  1. ElementNotVisibleException:元素不可见异常, selenium不能直接操作隐藏元素, 解决方法: 加上等待, 使用正常步骤使元素显示, 或使用js找到该元素的祖先节点的隐藏属性(通常为styple=”display: none”), 移除该属性然后定位操作.
  2. StaleElementReferenceException: 陈旧元素引用异常, 页面刷新或跳转后使用了之前定位到的元素, 解决方法: 重新定位元素并操作
  3. InvalidElementStateException: 元素状态异常 元素只读/不可点击等, 解决方法, 等待或使用js移除元素readonly/disable等限制属性后操作
  4. ElementNotSelectableException:元素不可被选中, 解决方法: 确认原始是否为select标签, 是否禁用
  5. InvalidSelectorException: 使用的定位方法不支持或xpath语法错误, 未返回元素, 解决方法: 检查使用的元素定位器是否拆包, 使用find_element()方法是, 第一个参数为’class name’, ‘link text’, ‘particial link text’ ‘css selector’, 空格分开, 非下划线连接, 建议使用By.CLASS_NAME的方式. 使用chrome开发着工具+Ctrl+F搜索验证自己写的xpath语法.
  6. MoveTargetOutOfBoundsException: 使用ActionChains的move方法时移动到的位置不合适

Cookie存取相关异常

  1. InvalidCookieDomainException: Cookie相应的域名无效
  2. UnableToSetCookieException: 设置Cookie异常

IME输入法引擎异常

  1. ImeNotAvailableException: 服务器不支持输入法
  2. ImeActivationFailedException: 输入法激活异常

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

Anaconda建立新的环境,出现CondaHTTPError: HTTP 000 CONNECTION FAILED for url …… 解决过程

  2020.3.7准备scrapy,使用anaconda创建一个新的环境,执行“conda create -n scrapyEnv python=3.6”,结果出现了“CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/win-64/current_repodata.json>”。以下是我的解决步骤。

一、电脑的环境

操作系统:windows10 64位

Anaconda版本:conda  4.8.2

二、解决步骤

1、打开Power Shell,执行“conda config –remove-key channels”命令,恢复Anaconda的源为默认。

因为我以为是清华的镜像有问题,所以想把镜像恢复为默认,然后重新执行“conda create -n scrapyEnv python=3.6”,发现问题依旧出现,只是出现的提示变为“CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://repo.anaconda.com/pkgs/main/win-64/current_repodata.json>”了。仔细对比之前的错误,发现除了镜像地址不一样以外,其他的描述是一样的,因此,我认为不是出现在镜像地址上。

2、恢复Anaconda镜像为清华的。在Power Shell上执行以下命令:

conda config --add channels - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
conda config --add channels - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main

如果命令没有执行成功,请执行第1条里的“conda config –remove-key channels”。

3、恢复为清华的镜像以后,我再次执行创建环境的命令,依旧是不成功。于是尝试打开镜像的地址“https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main”,打开以后看到的是以下界面:

 

似乎找到了问题所在:镜像地址应该加上”win-64″。

4、进入”C:\Users\Administrator“,打开“.condarc“,你将会看到以下代码:

ssl_verify: true
show_channel_urls: true

channels:
  - httpn://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main

将上述代码更改为

ssl_verify: true
show_channel_urls: true

channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/win-64

你也可能会在channels:下面看到 ”- default“,请删除它

5、修改完毕,再次执行”conda create -n scrapyEnv python=3.6”,涛声依旧啊!

6、继续翻阅网站,有网友说“一定要是http而不能为https!”,于是尝试修改一下,

ssl_verify: true
show_channel_urls: true

channels:
  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/win-64

再次执行”conda create -n scrapyEnv python=3.6”,成功啦!!!

7、根据在https://mirror.tuna.tsinghua.edu.cn/help/anaconda/上内容,最终的“.condarc”

ssl_verify: true
show_channel_urls: true

channels:
  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/win-64/
  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/win-64/
linux:

 - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/linux-64/
 - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/linux-64/

Anaconda简介与用法

Anaconda是个什么东东?

一、Anaconda 有什么用?

是一个安装、管理python相关包的软件,还自带python、Jupyter Notebook、Spyder,有管理包的conda工具,非常有用。

二、如何安装Anaconda?

很简单:

1、去官网https://www.anaconda.com/products/individual下载安装文件,不到500M。

2、双击安装。可以参考  http://www.360doc.com/content/20/0511/06/29876786_911481951.shtml  具体细节。

3、安装完成。

三、pip 和 conda 的区别

我简单的理解:

pip 是在python 环境中管理python包的工具

conda 是在conda环境中管理python包和其它包(例如C语言包)的工具

二者是不同的东西,不可以混用,它们安装的东西不在一个地方。

四、conda 常用的命令   (在终端中使用这些命令。打开图形界面AnacondaNavigator ,左侧Environment,点击小三角形,选中Open Terminal)

conda –version     #查看conda版本,验证是否安装

conda update conda   #更新至最新版本,也会更新其它相关包

conda update  –all  #更新所有包

conda update name  #更新指定的包

conda create -n env_name package_name #创建名为env_name的新环境,并在该环境下安装名为package_name 的包,可以指定新环境的版本号,

例如:conda create -n python2 python=python2.7 numpy pandas,创建了python2环境,python版本为2.7,同时还安装了numpy pandas包

activate env_name  #切换至env_name 环境

source activate env_name#以上不行使用这

deactivate   name  #退出环境(返回默认环境)

source deactivate env_name#以上不行使用这

conda info -e  #显示所有已经创建了的环境

conda create –name new_env_name –clone old_env_name #复制old_env_name为new_env_name

conda remove –name env_name –all #删除环境

conda list #查看所有已经安装的包

conda install package_name #在当前环境中安装包

conda install –name env_name package_name #在指定环境中安装包

conda remove — name env_name package #删除指定环境中的包

conda remove package #删除当前环境中的包

conda env list   #查看所有的环境

    conda env export > environment.yaml // 导出当前环境的包信息

conda env create -f environment.yaml // 用配置文件创建新的虚拟环境

五、python 虚拟环境

1)什么是虚拟环境?

把一部分内容独立出来,称之为容器。在容器中,安装我们自己想要的东西,比如不容版本的依赖包。各容器之间相互独立,互不影响。

比如下载完 Anaconda 之后,默认的就是 base 环境。

2)为什么要用虚拟环境?

因为在开发当中,我们需要根据不同的需求,下载不同的框架库,或者不同的版本。有了虚拟环境,我们可以为

不同的项目配置不同的运行环境,这样多个项目可以同时运行。

3)如何使用虚拟环境?

创建、激活、退出、删除。详见上面的命令,不再赘述。

注:新创建的环境除了python自带的一些官方包之外是没有其它包的,是一个比较干净的环境。例如我们可以在终端输入 python 打开 python的解释器试一下:

 

接下来我们可以在此环境中使用上述命令安装和卸载第三方包。

补充:Anaconda 所谓的创建虚拟环境,实际上就是在本地安装了一个真实的python环境,具体位置就在下面这个文件夹里

 

我们可以使用conda 命令随意切换当前的python 环境,使用不同版本的解释器和不同版本的包去运行python脚本。

 

六、Anaconda 与 pyCharm 连接

 

在工作环境中我们会集成开发环境去编码, 这里推荐JB公司的pycharm, 而pycharm也能很方便的和anaconda的虚拟环境结合

Setting => Project => Project Interpreter 里面修改 Project Interpreter , 点击齿轮标志再点击Add Local为你某个环境的python.exe解释器就行了

比如你要在learn环境中编写程序, 那么就修改为D:\Software\Anaconda\envs\learn, 可以看到这时候下面的依赖包也变成了learn环境中的包了.
接下来我们就可以在pycharm中愉快的编码了.

Anaconda 讲解 与 jupyter notebook 搭配

方便管理各类python库环境,来回切各类环境,因为有的时候别人的代码运行需要特定的python版本,所以新建一个python环境非常方便。

安装
Anaconda官方下载之后,Mac 下直接用命令行来安装吧:

$ bash ~/Downloads/Anaconda3-5.3.1-MacOSX-x86_64.sh // python3版本
1
安装过程中会让你输入yes 或 回车健,一路按照提示输入就行,没啥好犹豫的,安装后验证一下:

$ source ~/.bash_profile // 让环境变量生效

$ conda -V
# conda 4.7.12 // 输出conda 版本号

出现 conda 4.7.12 就说明安装成功。

常用命令使用
1、创建环境

$ conda create -n myenv python=3.7

生成指定python 3.7版本的环境,myenv 是环境名

2、多个环境建立好了,具体让那个生效呢?

$ conda activate myenv

有的环境利用的是 source activate ,这个跟安装的conda环境有关。指定要生效的环境名。

3、退出环境

$ conda deactivate

4、也可以删除 环境

$ conda remove –name myenv –all

5、查看环境列表

$ conda env list
1
6、查看环境中的安装库

conda list -n myenv
1
可以了解环境中

7、搜索包

conda search XXX
1
8、安装包

$ conda install XXX
1
这里的安装没有指定环境,其实是所有环境都可以使用这个库,相当于本地安装库一样

9、移除包

$ conda remove XXX

1
2
这个移除类似移除本地的库

10、安装库 到指定环境

$ conda install -n myenv XXX
1
库包管理
除了利用conda来安装包,还可以用pip来安装包,这是python 推荐的安装工具,
1、pip list
查看本地环境安装的那些包,你说如果我在一个conda 环境下可以使用这个命令,可以看到该环境安装的库包嘛?

2、pip install xxx
安装库包

pip install SomePackage==1.0.4 # 指定版本
pip install ‘SomePackage>=1.0.4’ # 最小版本
1
2
环境管理
新建环境是一个特别赶紧的环境,我们可以指定一个公共的环境,这里面放一些基本的库包,然后有特殊的库包要求,可以复制这个环境创建新环境,然后在新环境中安装特殊要求的库包版本号。
假设我们的基本库包为common环境,我们可以在这个环境中安装一些基本的包:

conda install scikit-learn

conda install numpy

conda install pandas

conda install lightgbm

通过复制功能,新建一个环境newenv:

conda create -n newenv –clone common

这样newenv 环境 包含了common 环境的库包,不需要额外安装。

环境管理注意要点
上面是相关命令,但是Anaconda环境管理还没讲到,这是他的主要优势,建议:

尽可能使用pip安装一些公有包
用conda 安装一些 特殊版本的包
经可能的给指定 环境 安装库
目前已经知道的知识点是:

conda创建的虚拟环境,只能创建当前与python版本相同的虚拟环境,所以它所含的包也是当前环境中pip安装过的包
有人补充:

conda install的package似乎是在anaconda\pkgs下,

而pip install的package是在anaconda\Lib\site-packages下。

推荐使用pip管理包(pip是python官方推荐的包管理器)
如果你在base环境,pip install的package应该就是安装在anaconda\Lib\site-packages下,然后其他虚拟环境下的使用python packages时优先搜索该虚拟环境下的package,如果没有它就搜索base环境下的package,也就是base环境下的package是可以被其他虚拟环境使用的,如果你进入其他虚拟环境下使用pip install,那么下载的包就只在这个虚拟环境中
配置镜像源
配置镜像源到目的是为来快速安装库包,毕竟配置为国内的镜像源下载库包更快,命令如下:

conda config –add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config –add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config –set show_channel_urls yes
使用 如下命令可以看到以下是否添加成功:

conda info
1
这个命令会打印出镜像信息。

与jupyter notebook关联
主要参考这篇文章,讲解的比较到位。https://zhuanlan.zhihu.com/p/29564719。

基本上安装来annaconda ,也安装了jupyter notebook,通过命令就可以打开:

jupyter notebook
1
启动之后浏览器就会跳出url :http://127.0.0.1:8888/tree 的页面,那就是该编辑器的页面,修改启动notebooks 在本地路径:

jupyter notebook –generate-config // 获取在电脑上的配置文件

1
2
输入命令后,得到配置文件路径:

Writing default config to: /Users/znss/.jupyter/jupyter_notebook_config.py
1
如果此文件是隐藏文件,mac 电脑下可能看不到,可以用vi打开该配置文件,或者设置显示隐藏文件,这样你就可以用sublime text 软件打开,主要是修改文件中的一个配置项:

## 用于笔记本和内核的目录。
c.NotebookApp.notebook_dir = ‘/Users/znss/Public/work/workspace/python/’
1
2
把这里的路径填写为你自己想要设置的路径就可以了,这样每次打开都会去找这个路径。

同时为了让jupyter notebook 可以使用conda创建的多个环境,如图所示:

使用conda安装插件,命令如下所示:

conda install nb_conda
1
插件一路yes 之后安装完毕,你可以启动,另一种方式:

python -m ipykernel install –user –name py3 –display-name “py3”

1
2
存在的问题
1、本地用pip 安装的库包,conda 创建的环境是不是都可以用?
2、conda base环境下安装的库包,是不是conda其他环境都可以用
3、进而存在,移除base包,其他所有创建的环境是不是都失效了,没有了环境?
————————————————

anaconda下改变python的版本
根据网页:http://python.jobbole.com/87522/

使用以下命令创建新环境:
conda create -n env_name list of packages

其中 -n 代表 name,env_name 是需要创建的环境名称,list of packages 则是列出在新环境中需要安装的工具包。

比如我现在的python版本是3.7,但是我想安装一个python 3.6的环境,则在anaconda prompt输入:
conda create -n py36 python=3.6

控制台会输出:

以及

# To activate this environment, use
#
# $ conda activate py36
#
# To deactivate an active environment, use
#
# $ conda deactivate
1
2
3
4
5
6
7
还是很酷很方便的。

现在激活这个新配置的环境:conda activate py36
输入python –version,可以看到:

(py36) C:\Users\dehen>python –version
Python 3.6.6 :: Anaconda, Inc.

(py36) C:\Users\dehen>
1
2
3
4
这时候打开anaconda navigator,发现多出来一个环境选择,太酷了。

这时候install 这个spyder就可以运行3.6版本下的程序了。

 

索性再配置一个python2.7的新环境:conda create -n py27 python=2.7
很快就显示配置完成并输出提示:

# To activate this environment, use
#
# $ conda activate py27
#
# To deactivate an active environment, use
#
# $ conda deactivate
1
2
3
4
5
6
7
所以,这样看来确实很方便,各个环境互相独立,都放在文件夹 D:\software\anaconda\envs 下:

还有,如果要删除我们配置的新环境,则:
conda env remove -n env_name

显示所有环境:
conda env list

当分享代码的时候,同时也需要将运行环境分享给大家,执行如下命令可以将当前环境下的 package 信息存入名为 environment 的 YAML 文件中。[6]
conda env export > environment.yaml

同样,当执行他人的代码时,也需要配置相应的环境。这时你可以用对方分享的 YAML 文件来创建一摸一样的运行环境。
conda env create -f environment.yaml
————————————————

 

anaconda没有重命名命令,因此使用克隆删除的方法

(1)进入旧环境
conda activate old_name
(2)克隆旧环境
conda create -n new_name –clone old_name
(3)退出旧环境
conda deactivate
(4)查看clone结果
conda info –envs
(5)删除旧环境
conda remove -n old_name –all
(6)查看最终结果
conda info –envs
————————————————
版权声明:本文为CSDN博主「不要清汤锅」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/hello_program_world/article/details/111054427

 

用selenium库爬取58同城售房信息

代码来了

#引入selenium、 pandas、openpyxl库
from selenium import webdriver
import pandas as pd
import openpyxl
#定义存储变量
xq=[]
hxmj=[]
dj=[]
zj=[]
#获取网页源代码
for i in range(5):
url=’https://cd.58.com/ershoufang/pn’+str(i)+’/’
browser = webdriver.Chrome()
browser.get(url)
#解析源代码,提取所需数据信息
for i in browser.find_elements_by_class_name(‘sendsoj’):
xq.append(i.find_elements_by_class_name(‘baseinfo’)[1].text)
hxmj.append(i.find_elements_by_class_name(‘baseinfo’)[0].text.replace(‘\n’,”))
dj.append(i.find_elements_by_class_name(‘price’)[0].find_elements_by_class_name(‘unit’)[0].text)
zj.append(i.find_elements_by_class_name(‘price’)[0].find_elements_by_class_name(‘sum’)[0].text)
pd.DataFrame({‘小区’:xq,’户型/面积’:hxmj,’单价’:dj,’总价’:zj})
data=pd.DataFrame({‘小区’:xq,’户型/面积’:hxmj,’单价’:dj,’总价’:zj})
writer=pd.ExcelWriter(’58.xlsx’)
data.to_excel(writer,’爬虫数据’)
writer.save()

Jupyter notebook使用技巧大全

Jupyter Notebook是一款开源的web应用,它允许使用者创建和分享包含代码,公式,可视化图表和纯文本的文档,并支持多种编程语言的交互式计算,对于python用户来讲更是一款十分方便的代码编写工具。只需要通过web浏览器就可以很方便地进行数据清洗和转换,数值模拟,统计建模,数据可视化,机器学习等。本文主要介绍Jupyter Notebook结合python的使用。

Jupyter Notebook安装

Jupyter Notebook的前身是IPython Notebook,对python2,python3都有很好的支持。相比于Pycharm,它安装更方便,代码块可以分开运行,支持MarkDown和LaTex,是对于数据分析人员特别友好的一个很“轻”的工具。通常可以在本地启动Jupyter Notebook服务,通过web浏览器使用它。实际工作中,有些公司会统一部署在线的Jupyter Notebook服务,同样通过相应的链接就可以访问,支持直接连接Hive表,使用pyspark等。另外,在一些数据平台上,例如kaggle,科赛等,很多代码也是通过notebook的形式进行分享,代码运行结果,图像等能够保留,因此具有较强的易读性。

对于本地的安装,有以下方式。

方法一:Anaconda安装

这是官方强烈推荐 的一种安装方式。Anaconda本身包含了Python,Jupyter Notebook以及其他常用的数据科学包,如Pandas,Numpy等。安装完Anaconda之后,通过Anaconda Navigator就可以快速启动。也可以在终端中执行jupyter notebook命令来启动,windows下安装好Anaconda之后,可以找到相应的导航器和Prompt命令行来启动。

640?wx_fmt=png

Anaconda Navigator打不开的解决办法

有时候,在通过anaconda prompt窗口执行conda install ***的安装库的命令后发生无法打开anaconda navigator的情况。

如何修复?

在搜索网络中各种解决方法并加以尝试后,总结出以下方案:

  1. 以管理员权限打开anaconda prompt
  2. 输入conda update conda
  3. 输入conda update –all
  4. 尝试打开anaconda navigator
  5. 如果不行,输入 conda update anaconda-navigator
  6. 输入anaconda-navigator –reset
  7. 输入conda update anaconda-client
  8. 输入conda update -f anaconda-client

执行以上所有命令行,大概率可修复anaconda navigator

方式二:pip安装

pip是python的一款包管理工具,通过pip install pkg_name可以完成很多python扩展包的安装。jupyter notebook 同样,执行pip install jupyter即可完成安装。

Jupyter Notebook入门
  1. 启动在终端中输入jupyter notebook是最常用的启动方式,默认在本地的8888端口启动。如果本地已经有一个jupyter正在运行,再启动一个就会运行在8889端口。运行完该命令,会在系统默认的浏览器打开一个网页,网页的地址是:http://localhost:8888/tree
    640?wx_fmt=png

    需要注意的是我们执行该启动命令的目录就是启动之后的根目录。如果你是要打开已经存在的.ipynb文件,最好切换到该文件所在目录再启动,或者启动之后将文件移动(或复制)到启动目录下。

    另外,如果想换一个浏览器打开jupyter notebook(我习惯用Chrome而不是默认的Safari),一种方式是可以复制浏览器的链接地址在目标浏览器中粘贴访问,此时可能出现类似于如下的界面。此时需要回到终端中,复制一下token填入token框,点击login即可正常访问。

    640?wx_fmt=png
  2. 总体使用如下图所示,该页面是启动之后默认打开的页面。我们可以看到当前目录下已有的文件,可以查看已有的jupyter 文件(灰色表示未在运行,绿色表示正在运行),可以点击查看子目录下的内容。
    640?wx_fmt=png

    我们点击右侧的New,选择Python3会在新的页面中建立一个未命名的notebook文件,选择Text File会新的页面中建立一个未命名的txt文件,选择Folder会在当前页面中建立一个未命名文件夹,选择Terminal会在新的页面中建立Terminal。

    640?wx_fmt=png

    可以在左侧进行勾选,对文件夹进行重命名,移动或删除,对文件进行复制,重命名,移动,下载,查看,编辑和删除。

    640?wx_fmt=png

    Running选项卡下可以看到当前正在运行的terminal和notebook,使我们可以对目前的资源使用情况进行一个直观了解。

    640?wx_fmt=png
  3. 退出如果要停止某个正在执行的notebook文件,可以在file选项卡下勾选该文件,点击shutdown(也可以用其他方式,见后文)。如果要关闭整个jupyter notebook,可以在终端中按下键盘上的Ctrl C即可。
    640?wx_fmt=png
Notebook使用说明

接下来我们重点说明一下新建“python3”之后的操作,这也是最常用的编写python文件的操作。

1.总体布局

640?wx_fmt=png

上面图中大致说明了Notebook中每一部分的作用,对平常使用python运行程序来讲,快捷命令已经足够。快捷命令工具条从左到后的图标依次表示:保存文件,添加新cell,剪切选中的cell,复制选中的cell,粘贴选中的cell,将选中cell上移,将选中cell下移,执行选中的cell,终止kernel,重启kernel,重启kernel并重新运行所有cell。Code点击之后有四个选项,分别是:Code(写python代码),MarkDown(写MarkDown代码,通常用于注释),Raw NBConvert(一个转换工具),Heading(快捷添加MarkDown标题)。最后一个小键盘可以查看和搜索一些快捷键的操作。

2. 常用菜单操作:

  • 修改文件名:可以点击文件名称,在弹出的框中直接修改或者File—>Rename
  • 新建Notebook文件:File—>New Notebook—>python3
  • 下载文件:File—>Download as —> 选择目标格式即可下载
  • 合并cell:Edit—>Merge Cell Above或Merge Cell Below
  • 重启Kernel并清除所有输出:Kernel—>Restart & Clear Output
  • 重启Kernel并运行所有cell:Kernel—>Restart & Run All
  • 停止当前Notebook运行:Kernel—>ShutDown

这里只列出了常用的菜单操作,没有列出的并不表示不常用,而是可以用快捷键或者菜单栏下方的快捷工具代替。如果需要查看每一个菜单选项的含义和作用,推荐文章:https://blog.51cto.com/853056088/2162189,写的非常详细。

3. 命令模式和编辑模式

每一个cell有两种模式:命令模式和编辑模式。如下图所示:最左侧是蓝色的条是命令模式,是绿色的条表示编辑模式(此时cell中有光标,可以进行代码编写)。在命令模式下,按下enter或者鼠标单击代码框可以进入编辑模式。在编辑模式下,按下esc或者鼠标单击代码框左侧区域即可进入命令模式。

640?wx_fmt=png 4. 常用快捷(键)操作:

代码运行:

  • ctrl + enter:运行当前cell的代码,运行完后依然保持在当前cell
  • shift + enter:运行当前cell的代码,运行完后跳转到下一个cell,如果是最后一个cell则会新增一个
  • 工具条上的Run

创建新的cell:

  • 命令模式下,按下字母a(above),会在当前cell上方增加一个cell
  • 命令模式下,按下字母b(blove),会在当前cell下方增加一个cell
  • 工具条上的➕按钮

删除当前侧cell

  • 命令模式下,按下字母x,即可删除当前cell
  • 命令模式下,连续两次按下字母d,即可删除当前cell
  • 工具条上的“剪刀”按钮

合并cell

  • 命令模式下,选中多个cell,shift + M可以进行合并
  • Edit—>Merge Cell Above/Merge Cell Down

拆分cell

  • 编辑模式下,以光标所在之处为分界点,ctrl shift -(减号),可以进cell的拆分
  • Edit—>Split Cell

保存代码

  • 命令模式下,按下字母s,就能创建一个checkpoint
  • 工具条上的保存按钮
  • File—>Save and Checkpoint

查找替换

  • 编辑模式下,ESC + F
  • Edit—>Find and Replace

折叠输出:有时输出过长的情况

  • 编辑模式下,ESC+O
  • 在cell左侧位置上双击即可折叠
  • Cell—>Current Output—>Toggle

显示代码行号

  • 命令模式下,按下字母l(L的小写,键盘k右侧的l)键,就能显示当前cell的行号
  • shift + l,显示所有cell的行号
  • View—>Toggle Line Numbers

切换代码类型

  • 命令模式下,按下m切换到MarkDown模式,再按下y切换到code模式
  • 工具条上手动切换
  • Cell—>Cell Type—>选择相应的代码类型

注释代码

  • 选中代码,command+/ (windows下是control)注:其他的快捷键可以点击工具栏最后的小键盘查看。

tab键的使用

  • 只输入变量或者函数的前几个字母,按下tab可以自动补全
  • 已经输入函数,连续按下shift+tab可以查询函数的具体用法,(一直可以按4次)
    640?wx_fmt=png

     

执行shell命令

  • 英文状态下的感叹号+普通的shell命令,例如:!pwd!ls等,有些时候或许很有用。

5. 魔法函数

640?wx_fmt=png

以上是一些常用的魔法函数,其他的一些魔法函数依然可以查阅上面的链接,

https://blog.51cto.com/853056088/2162189吗,读者可以查阅其具体的用法。

Jupyter Notebook扩展

执行以下代码可以安装jupyter notebook扩展

pip install jupyter_contrib_nbextensions && jupyter contrib nbextension install

640?wx_fmt=png

安装完之后,重新启动一下jupyter 服务,就可以看到Nbextensions选项卡。我们只需要勾选相应的插件,在每一个notebook的工具条中就会出现相应的扩展。选中每个扩展的时候,在其下方都会出现关于该扩展的说明,演示,配置等情况,通过仔细阅读我们就能得知该扩展的用法。

640?wx_fmt=png

比较好用的几个扩展及其作用如下:

1.Table of Contents

这个扩展一般用于整个文件的目录很多的时候。首先在Nbextensions选项卡中勾选该插件,然后在工具条中就可以看到该扩展按钮。如果我们在notebook中使用了MarkDown设置了我们的标题,点击该扩展,就会在左侧生成目录,点击左侧的齿轮,可以在最顶部添加一个cell专门用来显示目录。点击左侧和顶部的链接都可以快速跳转到相应的位置。还可以进行目录的折叠。注意到此时菜单栏上也多了一个“Navigate”标签,同样显示了目录的情况。

640?wx_fmt=png

2.Autopep8

这是一个将代码按照PEP8进行格式化的插件,前提是需要通过pip install autopep8安装autopep8,安装完之后需要重启jupyter notebook服务才能生效。同样在Nbextention选项卡中勾选Autopep8,在工具栏中会多一个“锤子”一样的按钮,可以帮助我们排版代码,使其符合pep8标准。

640?wx_fmt=png

3.Variable inspector

该插件可以帮助我们查看当前notebook中所有的变量的名称,类型,大小和值。省去了df.shape,type()等语句的执行,也代替了前文提到的魔法函数“%whos”的执行,读者可以自行尝试一下。

4.Code folding

顾名思义,该插件可以对代码进行一定的折叠,例如遇到class,def等关键字,而且主体代码又很长时,折叠代码会方便阅读,这一点也让jupyter notebook更像一个IDE。

5.Execute time

该插件可以显示每一个cell中代码的执行时间。

640?wx_fmt=png

除此之外还有一些其他常见的插件扩展,例如Notify,Collapsible headings等,读者可以自行探索查看,并配置使用。

其他说明
  • 制作幻灯片并放映:参考该链接的第二部分:https://blog.csdn.net/qq_27825451/article/details/85050496
  • 数学公式编辑:这个其实是MarkDown功能的延伸,需要将cell的代码类型改为MarkDown,然后在一对美元符号之间写入LaTex公式,(例如$E=mc^2$),运行cell之后就可以正常显示公式了。
  • 关于jupyter lab和jupyter hubjupyter lab是基于jupyter notebook的新版本,是包括了Notebook的下一代的有模块化的界面,可以在同一个窗口同时打开好几个notebook或文件(HTML, TXT, Markdown等等),都以标签的形式展示,于是就更像是一个IDE。除了界面上存在差异,使用方式上和notebook没有大的差别。
    640?wx_fmt=png

    jupyter hub是一个支持多用户的 Jupyter Notebook 服务器,用于创建、管理、代理多个 Jupyter Notebook 实例。具有扩展性和可定制性。常见的场景是公司的运维人员对很多人使用的Notebook进行管理和资源分配。这里不太方便演示。

  • 关于jupyter notebook与pycharm的差别个人认为notebook是更“轻”量级的,适合小白使用。各个cell之间具有相对独立,且变量共享的特点,某些时候特别有用。(例如在爬虫时,请求一次就获得了html源码,后面进行页面解析时就可以以此为基础进行调试,无需再次请求,在处理对请求频次有限制的网站时还是很有用的)。除此外,notebook能够保存中间结果,方便演示,适合数据分析人员或者数据科学家使用。pycharm更适合大型工程项目的管理,每一个文件是一次执行的。如果一个项目工程中有很多个文件,这时最好使用pycharm。此外pycharm在代码编辑时,随时会有提示,而且支持代码跳转,便于对源码的查看学习。当然工具毕竟只是工具,适合自己的就是最好的,读者可以根据自己的需求和使用习惯进行选择。

Jupyter Notebook介绍、安装及使用教程

Raxxie
34字数 8,961阅读 1,237,147
目录

一、什么是Jupyter Notebook?

1. 简介

Jupyter Notebook是基于网页的用于交互计算的应用程序。其可被应用于全过程计算:开发、文档编写、运行代码和展示结果。——Jupyter Notebook官方介绍

简而言之,Jupyter Notebook是以网页的形式打开,可以在网页页面中直接编写代码和运行代码,代码的运行结果也会直接在代码块下显示。如在编程过程中需要编写说明文档,可在同一个页面中直接编写,便于作及时的说明和解释。

2. 组成部分

① 网页应用

网页应用即基于网页形式的、结合了编写说明文档、数学公式、交互计算和其他富媒体形式的工具。简言之,网页应用是可以实现各种功能的工具。

② 文档

即Jupyter Notebook中所有交互计算、编写说明文档、数学公式、图片以及其他富媒体形式的输入和输出,都是以文档的形式体现的。

这些文档是保存为后缀名为.ipynbJSON格式文件,不仅便于版本控制,也方便与他人共享。

此外,文档还可以导出为:HTML、LaTeX、PDF等格式。

3. Jupyter Notebook的主要特点

  1. 编程时具有语法高亮缩进tab补全的功能。
  2. 可直接通过浏览器运行代码,同时在代码块下方展示运行结果。
  3. 以富媒体格式展示计算结果。富媒体格式包括:HTML,LaTeX,PNG,SVG等。
  4. 对代码编写说明文档或语句时,支持Markdown语法。
  5. 支持使用LaTeX编写数学性说明。

二、安装Jupyter Notebook

0. 先试用,再决定

如果看了以上对Jupyter Notebook的介绍你还是拿不定主意究竟是否适合你,那么不要担心,你可以先免安装试用体验一下,戳这里,然后再做决定。

值得注意的是,官方提供的同时试用是有限的,如果你点击链接之后进入的页面如下图所示,那么不要着急,过会儿再试试看吧。

试用失败

如果你足够幸运,那么你将看到如下界面,就可以开始体验啦。

主界面

试用成功

编辑页面

编辑页面

1. 安装

① 安装前提

安装Jupyter Notebook的前提是需要安装了Python(3.3版本及以上,或2.7版本)。

② 使用Anaconda安装

如果你是小白,那么建议你通过安装Anaconda来解决Jupyter Notebook的安装问题,因为Anaconda已经自动为你安装了Jupter Notebook及其他工具,还有python中超过180个科学包及其依赖项。

你可以通过进入Anaconda的官方下载页面自行选择下载;如果你对阅读英文文档感到头痛,或者对安装步骤一无所知,甚至也想快速了解一下什么是Anaconda,那么可以前往我的另一篇文章Anaconda介绍、安装及使用教程。你想要的,都在里面!

常规来说,安装了Anaconda发行版时已经自动为你安装了Jupyter Notebook的,但如果没有自动安装,那么就在终端(Linux或macOS的“终端”,Windows的“Anaconda Prompt”,以下均简称“终端”)中输入以下命令安装:

 

conda install jupyter notebook

③ 使用pip命令安装

如果你是有经验的Python玩家,想要尝试用pip命令来安装Jupyter Notebook,那么请看以下步骤吧!接下来的命令都输入在终端当中的噢!

  1. 把pip升级到最新版本
    • Python 3.x

     

    pip3 install --upgrade pip
    
    • Python 2.x

     

    pip install --upgrade pip
    
  • 注意:老版本的pip在安装Jupyter Notebook过程中或面临依赖项无法同步安装的问题。因此强烈建议先把pip升级到最新版本。
  1. 安装Jupyter Notebook
    • Python 3.x

     

    pip3 install jupyter
    
    • Python 2.x

     

    pip install jupyter
    

三、运行Jupyter Notebook

0. 帮助

如果你有任何jupyter notebook命令的疑问,可以考虑查看官方帮助文档,命令如下:

 

jupyter notebook --help

 

jupyter notebook -h

1. 启动

① 默认端口启动

在终端中输入以下命令:

 

jupyter notebook

执行命令之后,在终端中将会显示一系列notebook的服务器信息,同时浏览器将会自动启动Jupyter Notebook。

启动过程中终端显示内容如下:

 

$ jupyter notebook
[I 08:58:24.417 NotebookApp] Serving notebooks from local directory: /Users/catherine
[I 08:58:24.417 NotebookApp] 0 active kernels
[I 08:58:24.417 NotebookApp] The Jupyter Notebook is running at: http://localhost:8888/
[I 08:58:24.417 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
  • 注意:之后在Jupyter Notebook的所有操作,都请保持终端不要关闭,因为一旦关闭终端,就会断开与本地服务器的链接,你将无法在Jupyter Notebook中进行其他操作啦。

浏览器地址栏中默认地将会显示:http://localhost:8888。其中,“localhost”指的是本机,“8888”则是端口号。

URL

 

如果你同时启动了多个Jupyter Notebook,由于默认端口“8888”被占用,因此地址栏中的数字将从“8888”起,每多启动一个Jupyter Notebook数字就加1,如“8889”、“8890”……

② 指定端口启动

如果你想自定义端口号来启动Jupyter Notebook,可以在终端中输入以下命令:

 

jupyter notebook --port <port_number>

其中,“<port_number>”是自定义端口号,直接以数字的形式写在命令当中,数字两边不加尖括号“<>”。如:jupyter notebook --port 9999,即在端口号为“9999”的服务器启动Jupyter Notebook。

③ 启动服务器但不打开浏览器

如果你只是想启动Jupyter Notebook的服务器但不打算立刻进入到主页面,那么就无需立刻启动浏览器。在终端中输入:

 

jupyter notebook --no-browser

此时,将会在终端显示启动的服务器信息,并在服务器启动之后,显示出打开浏览器页面的链接。当你需要启动浏览器页面时,只需要复制链接,并粘贴在浏览器的地址栏中,轻按回车变转到了你的Jupyter Notebook页面。

no_browser

例图中由于在完成上面内容时我同时启动了多个Jupyter Notebook,因此显示我的“8888”端口号被占用,最终分配给我的是“8889”。

2. 主页面

① 主页面内容

当执行完启动命令之后,浏览器将会进入到Notebook的主页面,如下图所示。

Notebook Dashboard

如果你的主页面里边的文件夹跟我的不同,或者你在疑惑为什么首次启动里边就已经有这么多文件夹,不要担心,这里边的文件夹全都是你的家目录里的目录文件。你可以在终端中执行以下2步来查看:

① cd 或 cd - 或 cd ~ 或cd /Users/<user_name>

  • 这个命令将会进入你的家目录。
  • “<user_name>” 是用户名。用户名两边不加尖括号“<>”。

② ls

  • 这个命令将会展示你家目录下的文件。

② 设置Jupyter Notebook文件存放位置

如果你不想把今后在Jupyter Notebook中编写的所有文档都直接保存在家目录下,那你需要修改Jupyter Notebook的文件存放路径。

⑴ 创建文件夹/目录

  • Windows用户在想要存放Jupyter Notebook文件的磁盘新建文件夹并为该文件夹命名;双击进入该文件夹,然后复制地址栏中的路径。
  • Linux/macOS用户在想要存放Jupyter Notebook文件的位置创建目录并为目录命名,命令为:mkdir <directory_name>;进入目录,命令为:cd <directory_name>;查看目录的路径,命令为:pwd;复制该路径。
  • 注意:“<directory_name>”是自定义的目录名。目录名两边不加尖括号“<>”。

⑵ 配置文件路径

  • 一个便捷获取配置文件所在路径的命令:

 

jupyter notebook --generate-config
  • 注意: 这条命令虽然可以用于查看配置文件所在的路径,但主要用途是是否将这个路径下的配置文件替换默认配置文件
    如果你是第一次查询,那么或许不会出现下图的提示;若文件已经存在或被修改,使用这个命令之后会出现询问“Overwrite /Users/raxxie/.jupyter/jupyter_notebook_config.py with default config? [y/N]”,即“用默认配置文件覆盖此路径下的文件吗?”,如果按“y”,则完成覆盖,那么之前所做的修改都将失效;如果只是为了查询路径,那么一定要输入“N”。
命令

常规的情况下,Windows和Linux/macOS的配置文件所在路径和配置文件名如下所述:

  • Windows系统的配置文件路径:C:\Users\<user_name>\.jupyter\
  • Linux/macOS系统的配置文件路径:/Users/<user_name>/.jupyter/ 或 ~/.jupyter/
  • 配置文件名:jupyter_notebook_config.py
  • 注意:

① “<user_name>”为你的用户名。用户名两边不加尖括号“<>”。

② Windows和Linux/macOS系统的配置文件存放路径其实是相同的,只是系统不同,表现形式有所不同而已。

③ Windows和Linux/macOS系统的配置文件也是相同的。文件名以“.py”结尾,是Python的可执行文件。

④ 如果你不是通过一步到位的方式前往配置文件所在位置,而是一层一层进入文件夹/目录的,那么当你进入家目录后,用ls命令会发现找不到“.jupyter”文件夹/目录。这是因为凡是以“.”开头的目录都是隐藏文件,你可以通过ls -a命令查看当前位置下所有的隐藏文件。

⑶ 修改配置文件

  • Windows系统的用户可以使用文档编辑工具或IDE打开“jupyter_notebook_config.py”文件并进行编辑。常用的文档编辑工具和IDE有记事本、Notepad++、vim、Sublime Text、PyCharm等。其中,vim是没有图形界面的,是一款学习曲线较为陡峭的编辑器,其他工具在此不做使用说明,因为上手相对简单。通过vim修改配置文件的方法请继续往下阅读。
  • Linux/macOS系统的用户建议直接通过终端调用vim来对配置文件进行修改。具体操作步骤如下:
⒜ 打开配置文件

打开终端,输入命令:

 

vim ~/.jupyter/jupyter_notebook_config.py
vim打开配置文件

执行上述命令后便进入到配置文件当中了。

⒝ 查找关键词

进入配置文件后查找关键词“c.NotebookApp.notebook_dir”。查找方法如下:

进入配置文件后不要按其他键,用英文半角直接输入/c.NotebookApp.notebook_dir,这时搜索的关键词已在文档中高亮显示了,按回车,光标从底部切换到文档正文中被查找关键词的首字母。

⒞ 编辑配置文件

小写i进入编辑模式,底部出现“–INSERT–”说明成功进入编辑模式。使用方向键把光标定位在第二个单引号上(光标定位在哪个字符,就在这个字符前开始输入),把“⑴ 创建文件夹/目录”步骤中复制的路径粘贴在此处。

⒟ 取消注释

把该行行首的井号(#)删除。因为配置文件是Python的可执行文件,在Python中,井号(#)表示注释,即在编译过程中不会执行该行命令,所以为了使修改生效,需要删除井号(#)。

以下是针对Ubuntu16的服务器,其他的可能有部分区别。

第一步,下载anaconda3:

wget https://repo.continuum.io/archive/Anaconda3-4.2.0-Linux-x86_64.sh
  • 1

第二步,安装anaconda3(为避免一些权限问题,我一般简单粗暴的加sudo,这里好像可以不加):

sudo bash Anaconda3-4.2.0-Linux-x86_64.sh
  • 1

1)请输入回车键继续(Please, press ENTER to continue)
如果出现more,一直按空格键就行
2)是否同意协议(Do you approve the license terms?[yes | no]) 不要直接回车,因为默认为no
3) 输入安装路径(Anaconda3 will now be installed into this location:)
默认是/usr/ubuntu/anaconda3,可以修改,我的目录是/usr/local/anaconda(我也不经常使用Ubuntu,不知道装在哪里比较好,只是觉得装在家目录不好,就像Windows装在桌面一样)
4)是否将安装路径添加到当前用户的环境变量(…)
默认为no,改为yes
5)是否安装vscode
yes/no都行,不知道哪里需要这个,我选yes显示请检查你的网络连接,是否重试,然后一直这样,我就选no了
6)重新加载环境变量
source ~/.bashrc
7)输入conda –version验证是否安装成功

第三步:
1、输入ipython进入python3.6.5的ipython编辑器
分别输入:
from notebook.auth import passwd
passwd()
然后连续输入两次密码,复制它的返回值

2、 执行
jupyter notebook –generate-config
命令会产生一个配置文件:/home/ubuntu/.jupyter/jupyter_notebook_config.py
3、编辑配置文件
vi /home/ubuntu/.jupyter/jupyter_notebook_config.py
你可以直接在末尾添加,这样就不需要在配置文件中找这些参数,如果修改记得删掉前面的#。
c.NotebookApp.allow_remote_access = True # 有的有,有的没有,很奇怪
c.NotebookApp.ip = ‘*’ # 允许访问此服务器的 IP,星号表示任意 IP
c.NotebookApp.password = u’sha1:xxx:xxx’ # 之前复制的一长串密码的hash值
c.NotebookApp.open_browser = False # 运行时不打开本机浏览器
c.NotebookApp.port = 1024 # 使用的端口,随意设置,不被占用就行
如果是root用户,
c.NotebookApp.allow_root = True
保存退出
4、 后台运行jupyter notebook
nohup jupyter notebook > jupyter.log 2>&1 &
运行jupyter并输出重定向到jupyter.log文件,错误输出重定向到输出重定向,也就是也输出到这个文件,&表示后台运行

本地浏览器输入服务器IP:端口测试能不能连接。我用的是域名,比如:www.blisst.cn:1024,输入设置的密码即可使用了。如果不能连接请关闭防火墙:systemctl stop firewalld.service

如果是阿里云和腾讯云需要在安全组里开放相应的端口并绑定给服务器,我配置的顺序略有不同,如果出现问题,请留言告知。

原文博客:https://blog.csdn.net/Qwertyuiop2016/
现在这个是小号,给爬虫用的

Python爬虫实战入门一:工具准备

一、基础知识

使用Python编写爬虫,当然至少得了解Python基本的语法,了解:

  • 基本数据结构
  • 数据类型
  • 控制流
  • 函数的使用
  • 模块的使用

不需要过多过深的Python知识,仅此而已。
个人推荐《Python简明教程》http://www.kuqin.com/abyteofpython_cn/、

Python官方的《Python教程》

http://python.usyiyi.cn/translate/python_352/tutorial/index.html
如果需要PDF版Python入门资料,可以关注回复关键字:python入门资料

二、开发环境、

  • 操作系统:Windows 7
  • Python版本:Python 3.4
  • 代码编辑运行环境:个人推荐PyCharm社区版,当然,Python自带的IDLE也行,Notepad++亦可,只要自己使用得习惯。

三、第三方依赖库

  • requests:一个方便、简洁、高效且人性化的HTTP请求库
  • BeautifulSoup:HTML解析库
  • pymongo:MongoDB的Python封装模块
  • selenium:一个Web自动化测试框架,用于模拟登录和获取JS动态数据
  • pytesseract:一个OCR识别模块,用于验证码识别
  • Pillow:Python图像处理模块

四、第三方库安装:

上面列出的第三方模块大多可以通过pip install ××的方式直接安装,部分模块安装方式不一样,下面一一演示:
requests
pip install requests

图片

BeautifulSoup
pip install bs4

图片

pymongo
pip install pymongo

图片

selenium
pip install selenium

图片

Pillow
1、打开http://www.lfd.uci.edu/~gohlke/pythonlibs/
2、搜索找到“pillow”
3、根据自己系统的版本选择对应的下载包

图片

4、安装
pip install Pillow‑4.0.0‑cp34‑cp34m‑win32.whl

图片

pytesseract
1、pip install pytesseract

图片

2、安装tesseract
下载并安装:https://tesseract-ocr.googlecode.com/files/tesseract-ocr-setup-3.02.02.exe

这样,我们的准备工作就基本完成,如果有另外的需求,在实战中再进行安装,接下来就可以实战Python爬虫了。

黑群晖搭建 Jupyter Notebook介绍、安装及使用教程

下载官方版:

 

Anaconda3的安装python

Anaconda 下载地址:

https://www.anaconda.com/products/individual#download-section

清华大学开源软件站

https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/

https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-5.2.0-Linux-x86_64.sh

一、本地下载64-Bit (x86) Anaconda3-5.2.0-Linux-x86_64.sh,并经过winscp将其上传到群晖的/root/目录下。linux

wget –show-progress -cqO ./anaconda/Anaconda3-5.2.0-Linux-x86_64.sh https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-5.2.0-Linux-x86_64.sh

wget –no-check-certificate -qO- https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-5.2.0-Linux-x86_64.sh

二、切换到root目录下(使用root登陆putty)docker

cd /root/

 

三、在Linux里面.sh文件是可执行的脚本文件,须要用命令bash来进行安装vim

bash ./Anaconda3-5.2.0-Linux-x86_64.sh.sh

 

四、回车-接受协议,接受协议(yes),输入安装路径(直接回车可以使用默认安装路径),操做以下图所示:bash

 

五、设置环境变量,其中./bashrc为当前用户有效,能够选择no,(可设置全部用户有效,编辑/etc/profile文件,由于只是固定跑一些版本,此处本人未设置),添加环境变量: spa

export ANACONDA_HOME=安装路径3d

export PATH=$ANACONDA_HOME/bin:$PATHcode

最后生效profile文件,验证是否安装成功(#python)blog

 

jupyter notebook 的设置ip

>>>设置目标:局域网可访问,且随群晖开机启动

 

1.使用普通帐户登陆到putty。

 

2.打开ipython,生成密码

[root@DS3617xs]# ipython
In [1]:  from notebook.auth import passwd
In [2]: passwd()
Enter password: 123456Verify password: 123456Out[2]: 'sha1:f8b5f5dbeca8:d1f5b93d5e787e4bf1bf4ad2c48c177ba79f55dd'     #这个秘钥要copy备用

 

3.生成配置文件( /volume1/docker/anaconda3/为anaconda的安装路径 )

/volume1/docker/anaconda3/bin/jupyter-notebook --generate-config

 

4.使用vim编辑配置文件

vim /volume1/homes/admin/.jupyter/jupyter_notebook_config.py

修改以下选项,修改后保存

# 设置为0.0.0.0 局域网可访问
c.ConnectionFileMixin.ip = '0.0.0.0'

# c.NotebookApp.ip = 'localhost'  改成 本机IP
c.NotebookApp.ip = '172.18.108.101'

# 自定义文件目录
c.NotebookApp.notebook_dir = '/volume1/linux_data/jupyterNotebook/'

#这个就是上面生成的秘钥
c.NotebookApp.password = u'sha1:f8b5f5dbeca8:d1f5b93d5e787e4bf1bf4ad2c48c177ba79f55dd'  

 

5. 设置开机启动

/volume1/docker/anaconda3/bin/jupyter-notebook

运行jupyter lab出现“Running as root is not recommended. Use –allow-root to bypass”的解决方法(附:jupyte配置方法)

Donald Su 于 2019-07-17 21:51:25 发布 7762 收藏 10
分类专栏: Python
版权

Python
专栏收录该内容
35 篇文章0 订阅
订阅专栏
文章目录
1、问题解决
1-1、产生jupyter配置文件
1-2、修改配置文件
2、jupyter配置
3、jupyter修改密码
1、问题解决
运行jupyter notebook、jupyter lab出现“Running as root is not recommended. Use –allow-root to bypass”错误
可以通过如下方法解决该问题:

1-1、产生jupyter配置文件
使用 jupyter notebook –generate-config 命令生成jupyter配置文件,将会提示当前生成的配置文件的存放路径,一般为 ~/.jupyter/jupyter_notebook_config.py

1-2、修改配置文件
vim ~/.jupyter/jupyter_notebook_config.py打开配置文件,找到 #c.NotebookApp.allow_root = False ,去掉#,并修改为True。

保存该文件,使用jupyter notebook重新运行程序。

关于后台运行jupyter, 可以参考另一片文章:后台运行jupyter notebook程序

2、jupyter配置
使用jupyter notebook,更推荐使用 jupyter lab,这样有浏览操作的功能,非常便捷。安装方法: pip3 install jupyterlab或者pip install jupyterlab。

如果只是临时性使用,推荐如下命令运行jupyter:

jupyter lab –ip 0.0.0.0 –port 8888 –allow-root –no-browser
1
永久有效的配制方法,配置文件产生方法见:上面1-1的方法:

使用 jupyter notebook –generate-config 命令生成jupyter配置文件
使用vim ~/.jupyter/jupyter_notebook_config.py打开配置文件,找到或者直接添加如下内容修改相关配置
c.NotebookApp.ip = ‘0.0.0.0’ # listen on all IPs,远程访问时需要配置该项
c.NotebookApp.port = 55555 #jupyter监听的端口
c.NotebookApp.open_browser = False #是否在键入`jupyter`时打开浏览器
c.NotebookApp.password = ‘argon2:$argon2id$v=19$m=10240,t=10,p=8$yquzhGfZQd0ul/9aC4F7cQ$qMZffPLzgtukdg51uY6+aQ’ #jupyter server密码,生成方法见3的内容。
c.NotebookApp.allow_root = False #是否同意jupyter以root身份运行
1
2
3
4
5
3、jupyter修改密码
终端中键入jupyter notebook password命令,输入密码,生成的密码将会保存在~/.jupyter/jupyter_notebook_config.json文件中。如下图中1所示
使用 cat ~/.jupyter/jupyter_notebook_config.json查看文件内容,将其中password内容提取出来,修改配置文件c.NotebookApp.password的值。

Windows 安装完,需要手动添加环境变量。

Linux 和 MacOS 在安装过程中,会有提示是否设置环境变量。

Windows 添加环境变量需要在电脑->鼠标右键->属性->高级系统设置->环境变量->Path中设置。

图片

D:\Anaconda 为 Anaconda 的安装目录,将下面这两个地址添加到 Path 中即可。

D:\AnacondaD:\Anaconda\Scripts

都配置好后,可以在 cmd 或 Anaconda Prompt 中使用 Anaconda 搭建环境了。

输入指令:

conda create -n your_name jupyter notebook

这句话的意思是创建一个名字为 your_name 的虚拟环境,并且这个虚拟环境额外安装 jupyter notebook 第三方库。

可以将 your_name 改为你自己喜欢的名字,这个名字是你的虚拟环境的名字,自己随便取,比如jack。

随后,输入y进行安装:

图片

安装好后,可以通过指令 conda info -e 查看已有环境情况。

图片

从上图可以看到,有两个环境,一个是 base ,自带的基础环境,另一个是我们新创建的名为 jack 的环境。

安装好环境后,我们可以使用指令激活 jack 环境:

activate jack

图片

可以看到,我们的环境由 base 变成了 jack 。

接下来,我们就可以在这个环境里,安装自己想要的第三方库,比如 requests。

conda install requests

对于 conda 搜不到的包,也可以使用 pip 安装:

python -m pip install xxx

需要安装的第三方库安装完毕,可使用命令直接打开 Jupyter Notebook:

jupyter notebook

效果如下:

图片

创建一个新的 notebook:

图片

输入代码后,按 Ctrl + Enter 快捷键,即可运行程序:

图片

这个 Jupyter Notebook 使用的环境就是名为 jack 的虚拟环境。

想安装 Pytorch 啥的,直接在这个虚拟环境里安装即可,真香!

2

conda出现错误:

只需要修复下conda即可,可以用原来的安装包进行修复:

./Anaconda3-5.3.1-Linux-x86_64.sh -u