[toc]
- Ctrl+Z,再按回车 退出命令行
- python -m pip install --upgrade pip 升级pip
- A-Z 65-90; a-z:97-122
安装
- 官网下载安装包
- 点击安装,注意勾选加入到环境变量
- 命令窗口输入 python 如果进入 交互式环境 证明成功
包管理
pip install virtualenv
创建虚拟环境
virtualenv venv
默认在当前目录创建一个虚拟环境venv 目录, 进入到 venv/Scripts 命令行输入 activate/deactivate 激活和退出虚拟环境
语法
官方地址 https://docs.python.org/3/tutorial/index.html
pass
: 仅仅是占位 因为有的地方如果没有占位会报错,比如函数声明不能是空函数
win10 开机获取本机IP并写入文件中
运行:shell:startup
创建 .bat文件(如a.bat) 放入打开的启动文件夹
.bat文件内容
@echo off
start cmd /k "python文件地址 && python ip.py"
python文件内容
import socket
hostname = socket.getfqdn(socket.gethostname())
address = socket.gethostbyname(hostname)
try:
file = open('./ip.txt', 'w', encoding = 'utf-8')
result = hostname + ':' + address
file.write(result)
except OSError:
print('没有文件')
else:
pass
finally:
file.close()
print('finally success:' + address)
Django
安装
参考官网 https://docs.djangoproject.com/en/2.1/topics/install/#installing-official-release
- 注意与python版本对应
- 使用pip安装(时间慢)
项目(包含应用与配置)
- 创建project: django-admin startproject mysite(名称)
- 进入创建的project(与manage.py同级),创建应用: python manage.py startapp appname
- 添加新文件,将不会触发自动重新加载,这时你得自己手动重启服务器
- 监听所有服务器的公开IP(你运行 Vagrant 或想要向网络上的其它电脑展示你的成果时很有用) python manage.py runserver 0:8000; 0 是 0.0.0.0 的简写
文件解释
|- manege.py: 与项目进行交互的命令行工具集的入口
|- project name (项目名称,文件夹也是该名称)
|--- wsgi.py :python应用与web服务器之间的接口(一般不作更改)
|--- urls.py : URL 配置文件
|--- settings.py : 项目总配置文件,数据库,web应用,时间等配置
BASE_DIR:项目根目录
DEBUG:调试用,生产环境要关闭,打开后所有的无效访问都不会走400
ALLOWED_HOSTS:只允许哪些域名的访问,其它的全部报400
INSTALLED_APPS:自己创建的应用要加到这里面
TEMPLATES:模板的配置
_init_.py 声明模块的文件,一般内容为空,有了它,tutorial 才能在代码中被当作模块应用
|--- appname (应用名称)
|----
scrapy
- 报错 Spider must return Request, BaseItem, dict or None, 表示没有返回正确yield 后面的值
安装
pip install Scrapy
安装scrapy报错:Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools"
- https://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted 下载对应版本twisted的whl文件
- cp:python版本
- amd64:64位
- 下载后在文件目录下执行: pip install Twisted-18.7.0-cp37-cp37m-win_amd64.whl(文件名)
scrapy startproject youName 创建项目
scrapy genspider < name> < domain> 创建spider(在项目跟目录执行)
scrapy crawl(爬) spider名称
- 第一次执行会报错async语法错误 把用到该名称作为参数的文件全部作修改 把这个参数名改为其它即可
- 报错 No module named 'win32api': https://pypi.org/project/pypiwin32/#files(下载文件pypiwin32-223-py3-none-any.whl 执行 pip install pypiwin32-223-py3-none-any.whl )
[scrapy.spidermiddlewares.offsite] DEBUG: Filtered offsite request to:
表示request的地址和allow_domain地址冲突,被过滤。设置 yield Request(url, callback=self.parse_item, dont_filter=True)
导出为json scrapy crawl spider名称 -o test.json
注意配置FEED_EXPORT_ENCODING = 'utf-8' 否则中文会被转码
报403时注意把USER_AGENT加上
text() 获取文本 @属性名 获取属性值
在父节点下使用xpath路径前要加./
去除换行空格用 xpath('normalize-space('.//div/text()')')
css:
获取内容 css('::text')
返回属性值 response.css('.logo a::attr(href)').extract() 返回的值数组
去掉空格 python字符串对象的 strip() 方法
去掉换行 python字符串对象的 .replace('\n', '')