Python爬虫学习==>第五章:爬虫常用库的安装
学习目的:
爬虫有请求库(request、selenium)、解析库、存储库(MongoDB、Redis)、工具库,此节学习安装常用库的安装
正式步骤
Step1:urllib和re库
- 这两个库在安装Python中,会默认安装,下面代码示例调用:
>>> import urllib
>>> import urllib.request
>>> urllib.request.urlopen("http://www.baidu.com")
<http.client.HTTPResponse object at 0x0000000002F05F60>
>>> import re导入时,没有回显,就表示安装正确,可以正常使用
Step2:requests库安装
- 打开windows命令行cmd,输入命令:pip3 install requests

- 验证安装成功的代码示例
>>> import requests
>>> requests.get("http://www.baidu.com")
<Response [200]>
Step3:selenium库的安装
- 自动化测试的根基
- 在cmd中输入命令:pip3 install selenium
- 测试代码
>>> import selenium
>>> from selenium import webdriver - 安装Chromedriver,打开http://npm.taobao.org/mirrors/chromedriver ,点击下载chromedriver_win32.zip
- 解压后,把 chromedriver.exe 放到D:\Python36\Scripts
- 使用selenium库打开chrome浏览器代码示例:
>>> from selenium import webdriver
>>> driver = webdriver.Chrome()运行后,会打开一个谷歌浏览器,此外需要注意的是chrome版本需要大于等于55,因为驱动是这样的要求
Step4:phantomjs
PhantomJS 是一个基于WebKit的服务器端 JavaScript API。它全面支持web而不需浏览器支持,其快速,原生支持各种Web标准: DOM 处理, CSS 选择器, JSON, Canvas, 和 SVG。PhantomJS可以用于页面自动化,网络监测,网页截屏,以及无界面测试等。
简而言之:基于WebKit的,没有界面的浏览器。
闪亮的功能点:PhantomJS可以用于页面自动化,网络监测,网页截屏,以及无界面测试。
优势:跨平台,易上手。
安装步骤:
- 下载网址http://phantomjs.org/download.html
- 解压,获得phantomjs.exe 文件路径 D:\phantomjs-2.1.1-windows\bin,然后配置到用户变量中的path变量中
- 打开cmd,输入:phantomjs
ps:chrome headlessl可以替代phantomjs,为什么呢?因为selenium不再支持phantomjs了
Step5:chrome headless
测试代码(刚刚百度来的):这个是chrome的示例
from selenium import webdriver
options=webdriver.ChromeOptions()
options.set_headless()
# options.add_argument('--headless')
options.add_argument('--disable-gpu')
driver=webdriver.Chrome(options=options)
driver.get('http://httpbin.org/user-agent')
driver.get_screenshot_as_file('test.png')
driver.close()
FireFox浏览器的示例:
from selenium import webdriver
options = webdriver.FirefoxOptions()
options.set_headless()
# options.add_argument('-headless')
options.add_argument('--disable-gpu')
driver=webdriver.Firefox(firefox_options=options)
driver.get('http://httpbin.org/user-agent')
driver.get_screenshot_as_file('test.png')
driver.close()
Step6:lxml
简介:lxml是python中处理xml的一个非常强大的库,可以非常方便的解析和生成xml文件。
- 安装命令:pip3 install lxml
PS:如果安装失败了,可以多试几次,或者使用whl安装
Step7:beautifulsoup
简介:Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库。它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.Beautiful Soup会帮你节省数小时甚至数天的工作时间。
安装步骤:
- 依赖lxml库,所以要先安装lxml
- cmd: pip3 install beautifulsoup4
- 测试代码:
>>> from bs4 import BeautifulSoup
>>> soup = BeautifulSoup('<html></html>','lxml')
>>>
Step8:pyquery
简介:pyquery相当于jQuery的python实现,可以用于解析HTML网页等。它的语法与jQuery几乎完全相同。
安装步骤:
- 安装命令: pip3 install pyquery
- 测试代码
>>> from pyquery import PyQuery as pq
>>> doc = pq('<html>Python</html>')
>>> result = doc('html').text()
>>> result
'Python'pyquery的基础使用方法可以参考:https://www.cnblogs.com/lei0213/p/7676254.html
Step9:pymysql
简介:PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库
安装步骤:
- 命令:pip3 install pymysql
- 测试代码:
>>> import pymysql
>>> conn = pymysql.connect(host='localhost',user='root',password='',port=3306,db='mysql')
>>> cursor = conn.cursor()
>>> cursor.execute('select * from db')
2
>>> cursor.fetchone()
('localhost', 'performance_schema', 'mysql.session', 'Y', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N')
>>> cursor.fetchall()
(('localhost', 'sys', 'mysql.sys', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'Y'),)
Step10:pymongo
简介:PyMongo是驱动程序,使python程序能够使用Mongodb数据库,使用python编写而成
安装步骤:
- 安装命令:pip3 install pymongo
- 测试代码:
>>> import pymongo
>>> client = pymongo.MongoClient('localhost')
>>> db = client['newtest']
>>> db['table'].insert({'name':'python'})
ObjectId('5abe67d64bc36b29c0a61a03')
>>> db['table'].find_one({'name':'python'})
{'_id': ObjectId('5abe67d64bc36b29c0a61a03'), 'name': 'python'}
Step11:redis
简介:Python分布式爬虫比較经常使用的应该是scrapy框架加上Redis内存数据库,中间的调度任务等用scrapy-redis模块实现。
安装步骤:
- 安装命令:pip3 install redis
- 测试代码:
#数据的插入和获取
>>> import redis
>>> r = redis.Redis('localhost',6379)
>>> r.set('name','python')
True
>>> r.get('name')
Step12:flask
简介:Flask是一个Python编写的Web 微框架,让我们可以使用Python语言快速实现一个网站或Web服务
安装步骤:
- 安装命令:pip3 install flask
- 测试代码:
from flask import Flask
app = Flask(__name__) @app.route('/')
def hello_world():
return 'Hello World!' if __name__ == '__main__':
app.run()参考文档:官方文档:http://docs.jinkan.org/docs/flask/
Step13:django
简介:web服务器框架
安装步骤:
- 安装命令:pip3 install django
- 测试代码 import django
Step14:jupyter
安装步骤:
- 安装命令: pip3 install jupyter
- 运行->打开cmd,输入:jupyter notebook
- 然后浏览器会自动打开应用程序
学习总结:
生活过于安逸,是感觉不到行业的竞争压力,所以还是多学习,增强自己的测试的核心竞争能力吧。
Python爬虫学习==>第五章:爬虫常用库的安装的更多相关文章
- Python爬虫学习==>第七章:urllib库的基本使用方法
学习目的: urllib提供了url解析函数,所以需要学习正式步骤 Step1:什么是urllib urllib库是Python自带模块,是Python内置的HTTP请求库 包含4个模块: >& ...
- KOA 学习(五)koa常用库koa-swig
koa-swig 引入库app.js var render = require('koa-swig'); 模版设置app.js app.context.render = co.wrap(render( ...
- Python爬虫学习:三、爬虫的基本操作流程
本文是博主原创随笔,转载时请注明出处Maple2cat|Python爬虫学习:三.爬虫的基本操作与流程 一般我们使用Python爬虫都是希望实现一套完整的功能,如下: 1.爬虫目标数据.信息: 2.将 ...
- Python爬虫学习:二、爬虫的初步尝试
我使用的编辑器是IDLE,版本为Python2.7.11,Windows平台. 本文是博主原创随笔,转载时请注明出处Maple2cat|Python爬虫学习:二.爬虫的初步尝试 1.尝试抓取指定网页 ...
- scrapy爬虫学习系列五:图片的抓取和下载
系列文章列表: scrapy爬虫学习系列一:scrapy爬虫环境的准备: http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_python_00 ...
- 进击的Python【第十五章】:Web前端基础之DOM
进击的Python[第十五章]:Web前端基础之DOM 简介:文档对象模型(Document Object Model,DOM)是一种用于HTML和XML文档的编程接口.它给文档提供了一种结构化的表示 ...
- windows下python常用库的安装
windows下python常用库的安装,前提安装了annaconda 的python开发环境.只要已经安装了anaconda,要安装别的库就很简单了.只要使用pip即可,正常安装好python,都会 ...
- python 教程 第十五章、 结构布局
第十五章. 结构布局 #!/usr/bin/env python #(1)起始行 "this is a module" #(2)模块文档 import sys #(3)模块导入 d ...
- Java基础知识二次学习--第五章 数组
第五章 数组 时间:2017年4月26日15:11:30~2017年4月26日15:15:54 章节:05章_01节 视频长度:09:30 内容:一维数组的内存分析 心得: Java中数组是引用类型 ...
随机推荐
- 利用jQuery实现图片无限循环轮播(不借助于轮播插件)
原来我主要是用Bootstrap框架或者swiper插件实现轮播图的功能,而这次是用jQuery来实现图片无限循环轮播! 用到的技术有:html.css.JavaScript(少).jQuery(主要 ...
- 小程序生成海报 canvas
前言 微信小程序需要生成海报进行朋友圈分享,但是不同的手机会有问题, 然后首先是图片的问题 图片 在模拟器上没有报错,可是真机测试却什么也没画出来. canvas.drawImage 是不支持网络图片 ...
- hdu 6041 I Curse Myself
题目: 点这里OvO http://acm.hdu.edu.cn/showproblem.php?pid=6041 2017 Multi-University Training Contest - T ...
- luogu 3857 [TJOI2008]彩灯 线性基
可以将每一个开关控制的灯的序列看作是0/1组成的二进制. 由于灯的开和关是满足异或的性质的,所以直接求一下线性基大小即可. 答案为 $2^{size}.$ #include <cstdio> ...
- hdu 5791 Two 二维dp
Two Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submiss ...
- nu.random.seed()如何理解
结论: np.random.seed(a) # 按照规定的顺序生成随机数 # 参数a指定了随机数生成的起始位置: # 如果两处都采用了np.random.seed(a),且两处的参数a相同,则生成的随 ...
- Java多线程-程序运行堆栈分析
class文件内容 class文件包含JAVA程序执行的字节码:数据严格按照格式紧凑排列在class文件中的二进制流,中间无任何分隔符:文件开头有一个0xcafebabe(16进制)特殊的一个标志. ...
- 20165213 Exp9 Web安全基础
Exp9 Web安全基础 一.基础性问答 (1)SQL注入攻击原理,如何防御 原理:SQL注入即是指web应用程序对用户输入数据的合法性没有判断,攻击者可以在web应用程序中事先定义好的查询语句的结尾 ...
- bootstrap-table前端实现多条件时间段查询数据
实现思路:通过正则匹配到字段是否符合条件,时间段转换为时间戳比对. 这是大体的效果图: 页面的html代码 <div class="content-head mgb10"&g ...
- LC 358. Rearrange String k Distance Apart
Given a non-empty string s and an integer k, rearrange the string such that the same characters are ...