def

scrapy框架学习

依然范特西╮ 提交于 2020-12-01 02:48:11
- 一 什么是scrapy?    - Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,非常出名,非常强悍。所谓的框架就是一个已经被集成了各种功能(高性能异步下载,队列,分布式,解析,持久化等)的具有很强通用性的项目模板。   - 安装      - linux: pip3 install scrapy      - windows:        - 1) pip3 install wheel        - 2) 下载Twisted ( http: / / www.lfd.uci.edu / ~gohlke / pythonlibs / #twisted )        - 3) 进入下载目录, 执行 pip3 install Twisted‑ 17.1 . 0 ‑cp35‑cp35m‑win_amd64.whl        - 4) pip3 install pywin32        - 5) pip3 install scrapy - 二 使用    - 1) 创建项目:scrapy startproject 项目名称    - 2) 创建应用程序:      - 先进入项目目录: cd 项目名      - scrapy genspider 应用名 爬取网页的起始url:      - 生成的初始文件 # -*- coding: utf-8

Django笔记

☆樱花仙子☆ 提交于 2020-12-01 02:47:14
python版本 3.+ Django version 1.0.1 一、Django基础 Django笔记: 1 、Django请求生命周期 -> URL对应关系(匹配) -> 视图函数 -> 返回用户字符串 -> URL对应关系(匹配) -> 视图函数 -> 打开一个HTML文件,读取内容 2 、创建django projcet django - admin startproject mysite .. mysite mysite - 配置文件 - url.py - settings.py cd mysite python manage.py startapp cmdb mysite mysite - 配置文件 - url.py - settings.py cmdb - views.py - admin.py - models.py # 创建数据库表 3 、配置 模板路径 静态文件路径 # CSRF 4 、编写程序 a. url.py /index/ -> func b. views.py def func(request): # 包含所有的请求数据 ... return HttpResponse( ' 字符串 ' ) return render(request, ' index.html ' , { '' }) retrun redirect( ' URL ' ) c.

Django笔记

試著忘記壹切 提交于 2020-12-01 02:01:12
安装:pip install django 查看版本号:python -m django --version 新建项目:django-admin startproject mysite或使用Pycharm创建Django项目,file-->new project 各文件和目录解释: 外层的projectName / 目录与Django无关,只是你项目的容器,可以任意命名。 manage.py :一个命令行工具,用于与Django进行不同方式的交互脚本,非常重要! 内层的projectName / 目录是真正的项目文件包裹目录,它的名字是你引用内部文件的包名,例如:projectName .urls 。 projectName/__init__.py :一个定义包的空文件。 projectName/settings.py :项目的主配置文件,非常重要! projectName/urls.py :路由文件,所有的任务都是从这里开始分配,相当于Django驱动站点的内容表格,非常重要! projectName/wsgi.py :一个基于WSGI的web服务器进入点,提供底层的网络通信功能,通常不用关心。 启动项目:在项目根目录下,运行 Python manage.py runserver 启动项目-指定端口:python manage.py runserver 8080 启动项目

让xray自动化批量扫站--躺着等洞上门

折月煮酒 提交于 2020-12-01 00:59:43
0 x 00: 简介 众所周知 , xray只能设置被动扫描多个站或者主动扫描单个网站 。( 如果有大佬是能设置扫多个站的 , 算我孤陋寡闻了 ) 虽然它很“强大” , 但是也有短板之处 。 我既不想被动扫描 ( 主要是我懒 ) 多个站 , 也不想主动扫描一个站 。 所以就衍生我一个想法 , 主动扫多个站 。 躺着它不香吗 。 0 x 01: 环境 python3 MAC Xray 1.5 破解版 0 x 02: 思路 测试利用 python 函数调用 xray 来爬网站并做扫描 ( 把 xray 放在脚本同一个目录下 ) os.system("./xray webscan --basic-crawler http ://www.xxx.com/ --html-output 1.html") 尝试加入授权网站列表 IP.txt( 记得未授权会被请去喝茶的哟 ) import os #author:Jaky def xray(ip): #exp=(("./xray webscan --basic-crawler {0}/ --html-output {1}.html").format(ip,name)) #os.system(exp) print (("./xray webscan --basic-crawler {0}/ --html-output {1}.html")

【NLP实战系列】Tensorflow命名实体识别实战

余生长醉 提交于 2020-12-01 00:31:35
实战是学习一门技术最好的方式,也是深入了解一门技术唯一的方式。因此,NLP专栏计划推出一个实战专栏,让有兴趣的同学在看文章之余也可以自己动手试一试。 本篇介绍自然语言处理中一种非常重要的任务:命名实体识别。因为最常见的是Bilstm+CRF模型进行实体识别,本文介绍介绍另外一种有效的模型,Dilated-CNN+CRF模型,但是两种模型的代码都会给出。 作者&编辑 | 小Dream哥 1 命名实体识别任务介绍 笔者在这篇文章中,曾经系统的介绍过命名实体识别任务的相关 概念 和 语料 标注方式 ,不了解的同学可以先阅读这篇文章: 【NLP-NER】什么是命名实体识别? 关于Bilstm和Dilated-CNN两个模型 理论 方面的内容,笔者在这篇文章中做了详细的介绍,不了解的同学可以先阅读这篇文章: 【NLP-NER】命名实体识别中最常用的两种深度学习模型 话不多说,既然是实战篇,我们就赶紧开始吧。 2 数据预处理 1) 查看数据格式 先了解一下数据格式,方便后面进行处理。如下图所示,语料为标准的BIO标注方式, 每个字和标记之间用空格隔开,语料之间用一个空行隔开 。 2)读取训练数据 def load_sentences(path, lower, zeros): """ 加载训练,测试,验证数据的函数 """ sentences = [] sentence = [] num = 0

Python中的args和kwargs

試著忘記壹切 提交于 2020-12-01 00:21:38
有时,你会看到python中定义函数的时候带有两个奇怪的参数:*args、**kwargs。如果你曾经想知道它们是干什么的,或者想知道你的IDE为什么在main()函数中定义它们,那么本文可以帮助到你。本文会告诉你在python中如何使用args和kwargs,来增加函数的灵活性。 1.传递多个参数给函数 *args和*kwargs允许你给一个参数传递多个参数或者keyword参数。考虑下面的例子。这是一个简单的函数,需要获取两个参数并返回它们之和: def my_sum(a, b): return a + b 这个函数可以正常工作,但它仅限于两个参数。如果需要对不同数量的参数求和,如果传递的特定参数数量仅在运行时确定,该怎么办?创建一个可以对传递给它的所有整数求和的函数,不管是多少个参数,是不是很好? 2.在python函数定义中使用变量args 有多种方法可以给一个函数传递不同数量的参数。 对于有经验的人来说,第一种最直观的方法是使用集合。简单地传递一个list或者set作为函数的参数。因此,对于my_sum(),你可以将你所有要相加的所有整数以一个list的形式传入: # sum_integers_list.py def my_sum(my_integers): result = 0 for x in my_integers: result += x return

第四章练习题

老子叫甜甜 提交于 2020-11-30 23:26:58
1、logging模块有几个日志级别? debug info warning error critical 2、请配置logging模块,使其在屏幕和文件里同时打印以下格式的日志 2017-10-18 15:56:26,613 - access - ERROR - account [1234] too many login attempts 1 import logging 2 3 logger = logging.getLogger( ' access ' ) 4 logger.setLevel(logging.ERROR) 5 6 7 8 ch = logging.StreamHandler() 9 fh = logging.FileHandler( ' homework-logging ' ) 10 11 formatter = logging.Formatter( ' %(asctime)s - %(name)s - %(levelname)s - %(message)s ' ) 12 ch.setFormatter(formatter) 13 fh.setFormatter(formatter) 14 15 logger.addHandler(ch) 16 logger.addHandler(fh) 17 18 19 logger.error( ' account

mqtt mosquitto 安装与使用

风格不统一 提交于 2020-11-30 23:24:40
1,安装服务端 mosquitto apt-get install mosquitto 2,安装客户端paho.mqtt.python pip install paho-mqtt 3, mqtt 应用在ubuntu上 import paho.mqtt.client as mqtt import time HOST="127.0.0.1"//mosquitto 安装的主机ip,127.0.0.1 表示与mosquitto在同一机器上 PORT=1883 client=mqtt.Client() def on_connect(client,userdata,msg): print("on_connect") pass def on_dis_connect(client,userdata,msg): print("on_dis_connect") pass def mqtt_sub(topic): client.subscribe(topic,1) def mqtt_pub(topic,payload): client.publish(topic,payload,1,1) def mqtt_init(on_message): client.connect(HOST,PORT,60) client.on_connect=on_connect client.on_disconnect=on

接口自动化测试 python+request+excel(一)

拟墨画扇 提交于 2020-11-30 22:12:53
注:   学习python自动化测试,需要先学习python基础,主要还是多敲代码,多联系,孰能生巧,你也会是一名合格的程序员   python基础学习:      http://c.biancheng.net/python/      https://www.runoob.com/python3/python3-tutorial.html 编写接口自动化测试,你要了解掌握他的库,比如下面最重要的两个库,unittest和requests;   官方文档: https://docs.python.org/3/library/unittest.html unittest   官方文档: http://2.python-requests.org/zh_CN/latest/user/quickstart.html requests 掌握这两个库,相信做接口测试是完全没问题的。 接口测试post(接口测试有很多种写法,能成功就OK) 1 # coding:utf-8 2 import unittest,time 3 import requests 4 import re 5 6 host = " http://192.168.0.175:8080 " 7 8 9 def login(s,username,psw): 10 url = host+ " /login.jsp " 11 12

笔记-twisted-adbapi-scrapy

走远了吗. 提交于 2020-11-30 02:30:31
笔记-twisted-adbapi-scrapy-mysql 1. 异步插入mysql 在爬虫中需要insert到mysql,但有一个问题是在爬虫环境中commit的及时性与性能冲突。 一般可以在close_spider进行commit,这样做的问题是如果中途数据库崩了,数据丢失,找起来也很麻烦; 但如果在insert_db中直接加入commit,又会使程序执行变得很慢。 这里就可以使用Twisted中提供的以异步方式多线程访问数据库的模块adbapi,可以显著提供程序访问数据库的效率。 adbapi.ConnectionPool方法可以创建一个数据库连接池对象,其中包括多个连接对象,每个连接对象在独立的线程中工作。adbapi只是提供了异步访问数据库的编程框架,再其内部依然使MySQLdb这样的库访问数据库。 dbpool.runInteraction(insert_db,item)以异步方式调用insert_db函数,dbpool会选择连接池中的一个连接对象在独立线程中调用insert_db,其中参数item会被传给insert_db的第二个参数,传给insert_db的第一个参数是一个Transaction对象,其借口与Cursor对象类似,可以调用execute方法执行SQL语句,insert_db执行后,连接对象会自动调用commit方法 1.1. 代码示例 import