python知识点
一. Python下载
Python官网:https://www.python.org/
二.Python安装
1.下载安装包
wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz
2.解压缩安装包
tar -zxvf Python-3.7.0.tgz
3.建立一个空文件夹,用于存放python3程序
mkdir /usr/local/python3
4.执行配置文件,编译,编译安装
cd Python-3.7.0
./configure --prefix=/usr/local/python3
make && make ×××tall
三.源码安装MongoDB数据库
1.下载安装包
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.2.5.tgz
2.解压安装包
tar -zxvf mongodb-linux-x86_64-rhel70-3.2.5.tgz
3.创建Mongodb数据存储目录和日志存放目录
mkdir -p /data/db(默认在根"/"目录下)
4.移动解压缩后的文件夹下的所有文件到mongodb文件夹下
mv mongodb-linux-x86_64-rhel70-3.2.5 /usr/local/mongodb
5.进到mongodb文件
cd /usr/local/mongodb/bin
6.启动MongoDB服务
./mongod &
./mongo
7.退出
exit
四.第三方模块的安装pip
1.进pip官网
https://pip.pypa.io/en/stable/×××talling/
2.找到Installation复制链接下载
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
3.运行
python get-pip.py
4 . pip 安装 pymogo(python链接第三方库)、requests、bs4 、json 、xlwt
pip ×××tall mongo、pip ×××tall requests、pip ×××tall bs4、pip ×××tall json 、pip ×××tall xlwt
五.查看数据库
1.查看数据库:
cd /usr/local/mongodb/bin
./mongo
show dbs
use iaaf
show tables
db.athletes.find()
db.athletes.find().count()查看数据总数
2.pymongo查看数据库
import pymongo
db = pymongo.MongoClient().iaaf
for i in db.athletes.find():
print i
3.删除数据库
use iaaf
db.athletes.drop() 删除 表中数据
六.浏览器查找消息头(headers)
1.第一种方式:
①进入浏览器,右键选择查看元素(F12)
②找到控制台(console)输入:alert(navigator.userAgent)
③复制userAgent内容
2.第二种方式:
①进入浏览器,右键选择查看元素(F12)
②找到网络,随便选择其中一个内容
③找到右侧消息头最下面的userAgent
七.python6个标准数据类型
Number(数字)
String(字符串)
List(列表)
Tuple(元组)
Set(集合)
Dictionary(字典)
不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。
八.爬虫
网络爬虫是一种自动获取网页内容的程序,是搜索引擎的重要组成部分,
网络爬虫为搜索引擎从万维网下载网页。一般分为传统爬虫和聚焦爬虫。
网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,
是搜索引擎的重要组成。传统爬虫从一个或若干初始网页的URL开始,获得
初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL
放入队列,直到满足系统的一定停止条件。
模块的使用方法
MongoDB
1.MongoDB的概念
MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。
在高负载的情况下,添加更多的节点,可以保证服务器性能。
MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。
MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。
2.MongoDB的主要特点
MongoDB 是一个面向文档存储的数据库,操作起来比较简单和容易。
Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌
的对象及数组。
MongoDb 使用update()命令可以实现替换完成的文档(数据)或者一些指定的数据字段 。
MongoDB允许在服务端执行脚本,可以用Javascript编写某个函数,直接在服务端执行,
也可以把函数的定义存储在服务端,下次直接调用即可。
MongoDB支持各种编程语言:RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言。
Requests
1.Requests的概念
Requests 是Python语言编写,基于urllib,采用Apache2 Licensed开源协议的 HTTP 库。
它比urllib 更加方便,可以节约我们大量的工作,完全满足HTTP测试需求。
2 .Requests的请求方式
①GET: 请求指定的页面信息,并返回实体主体。
②HEAD: 只请求页面的首部。
③POST: 请求服务器接受所指定的文档作为对所标识的URI的新的从属实体。
④PUT: 从客户端向服务器传送的数据取代指定的文档的内容。
⑤DELETE: 请求服务器删除指定的页面。
get 和 post比较常见 GET请求将提交的数据放置在HTTP请求协议头中
POST提交的数据则放在实体数据中
BS4
1.BS4的概念
bs4库是解析、遍历、维护、"标签树"的功能库
通俗一点说就是:bs4库把HTML源代码重新进行了格式化,
从而方便我们对其中的节点、标签、属性等进行操作
2.BS4的4中对象
①Tag对象:是html中的一个标签,用BeautifulSoup就能解析出来Tag的具体内容,具体
的格式为‘soup.name‘,其中name是html下的标签。
②BeautifulSoup对象:整个html文本对象,可当作Tag对象
③NavigableString对象:标签内的文本对象
④Comment对象:是一个特殊的NavigableString对象,如果html标签内存在注释,那么它可以过滤掉注释符号保留注释文本
最常用的还是BeautifulSoup对象和Tag对象
Json
1.Json的概念
JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式。Python3 中可以
使用 json 模块来对 JSON 数据进行编解码,它主要提供了四个方法:
dumps、dump、loads、load。
2.格式转化表
JSON中的数据格式和Python中的数据格式转化关系如下:
JSON Python
object dict
array list
string str
number (int) int
number (real) float
true True
false False
null None
xlwt
1.xlwt的概念
Python语言中,写入Excel文件的扩展工具。相应的有xlrd扩展包,专门用于excel读取。
可以实现指定表单、指定单元格的写入。
2.主要功能
Python语言中,写入Excel的扩展工具。
可以实现创建表单、写入指定单元格、指定单元格样式等人工实现的功能,
一句话就是人使用excel实现的功能,这个扩展包都可以实现。
脚本的思路
总体
我们访问网站: 浏览器
服务器返回 html 代码
html (hypertext markup language)
超文本标记语言 (标签语言)
浏览器 解析 转换成 我们能看的页面
爬虫 :
1. 访问网站,拿到html网页
2. 提取html中我们 想要的内容
3. 把我们 爬到的内容 存到 数据库 (execl表格)
找到要访问的网站——找到headers的User-Agent——在BeautifulSoup中解析
找到相应标签——提取想要的内容的src——存到数据库中——爬虫完成
第一个脚本
1.导包
2.创建数据库
3.输入要爬的域名地址
4.在浏览器查找标头(User-Agent),让爬虫不被阻止
5.循环遍历23页列表
6.抓取每一页的内容
7.将访问到的信息在BeautifulSoup解析,设置变量HTML
8.打印内容
9.解析HTML的内容存放到soup变量中
10.在soup中找属性是class,名字为records-table的表格(找到3个)
11.在三个records-table表格中选运动员信息相关的表格是第3项
12.遍历tr和td
13.定位运动员信息
14.把所有运动员信息组成json数据,放到数据库里
第二个脚本
1.导包
2.创建数据库
3.输入要爬的域名网址
4.在浏览器中查找标头(User-Agent),让爬虫不被阻止
5.抓取域名里的内容
6.将访问到的信息在BeautifulSoup解析,设置变量HTML
7.解析HTML的内容存放到soup变量中
8.在soup中找标签为div,属性是id='progression'的内容
9.在div标签里去找h2标题标签
10.通过标题定位,通过上级目录找到指定的table标签,并将信息存放在tbody列表中
11.在tbody列表里按室外和室内分类,整理信息
12.把所有运动员信息组成json数据,设置返回值存放
第三个脚本
1.导包
2.在浏览器中查找标头(User-Agent),让爬虫不被阻止
3.调用脚本2的里的数据得到每个运动员的href
4.将基础网址和得到的运动员href拼在一起
5.得到目标网址
6.将室内和室外的信息分成两个列表分别存放
7.将所有信息存放在数据库里
8.用id定位数据
第四个脚本
1.导包
2.创建数据库
3.创建一个Workbook对象,相当于创建了一个Excel文件
4.添加一个表起名为iaaf
5.遍历标题的信息数量
6.将标题里的信息输入进去
7.将运动员以国家分类存放在国家的列表里
8.在数据库里调取以国家分类的信息
9.将提取的信息按照室内和室外分类
10.安装标题的信息从第一行依次输入数据
11.将表格信息从数据库里提出并存放在“iaaf.xls”中