<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[windmillsign的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/windmillsign</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; windmillsign]]></copyright><item><title><![CDATA[scrapy+selenium爬取需要登录需要验证码的网站]]></title><link>https://blog.youkuaiyun.com/windmillsign/article/details/113402423</link><guid>https://blog.youkuaiyun.com/windmillsign/article/details/113402423</guid><author>windmillsign</author><pubDate>Fri, 29 Jan 2021 18:16:06 +0800</pubDate><description><![CDATA[scrapy+selenium爬取需要登录需要验证码的网站
站在巨人的肩膀上
采取了大神的思路，加上自己项目的需求
点击打开大神文章连接
本文只是将结果打印了出来，没有保存过程，后续会继续写文章
思路注释上都有，就不墨迹了
import json
import time
import urllib
import urllib.request
from pathlib import Path

import scrapy
from scrapy.http import Request,FormRequest
]]></description><category></category></item><item><title><![CDATA[scrapy 笔记一 完整示例]]></title><link>https://blog.youkuaiyun.com/windmillsign/article/details/113186167</link><guid>https://blog.youkuaiyun.com/windmillsign/article/details/113186167</guid><author>windmillsign</author><pubDate>Tue, 26 Jan 2021 18:14:43 +0800</pubDate><description><![CDATA[转载并修改
源博主网址：https://www.xncoding.com/2016/03/10/scrapy-02.html
创建爬虫项目：
scrapy startproject coolscrapy

创建名为db的爬虫：
scrapy genspider -t basic db douban.com

开始爬数据
scrapy crawl db

爬出报错可能的原因：
1、没有关闭机器人协议
2、没有加请求头
这篇文章我们通过一个比较完整的例子来教你使用Scrapy，我选择爬取虎嗅网首页的新闻列表。
]]></description><category></category></item><item><title><![CDATA[界定流失方法论]]></title><link>https://blog.youkuaiyun.com/windmillsign/article/details/112967411</link><guid>https://blog.youkuaiyun.com/windmillsign/article/details/112967411</guid><author>windmillsign</author><pubDate>Thu, 21 Jan 2021 17:17:29 +0800</pubDate><description><![CDATA[界定流失方法论
一、用户流失曲线
	一个用户每周的使用次数做成条形图，观察多个用户
		本方法也可以用来观测生命周期
二、用户流失轨迹
	某一天注册用户在周的维度上持续使用的人数
	https://www.pmcaff.com/discuss/1020008035057728
三、最后一次活跃据上次活跃的天数
	横坐标代表用户最后一次活跃距上次活跃的天数，纵坐标代表累计用户占比。
	https://zhuanlan.zhihu.com/p/36802250
四、观察月内流失
	某月中以天的维度，观察每天的用]]></description><category></category></item><item><title><![CDATA[js 99乘法表 等等]]></title><link>https://blog.youkuaiyun.com/windmillsign/article/details/107049843</link><guid>https://blog.youkuaiyun.com/windmillsign/article/details/107049843</guid><author>windmillsign</author><pubDate>Tue, 30 Jun 2020 20:25:43 +0800</pubDate><description><![CDATA[&lt;script type="text/javascript"&gt;
		document.write("99乘法表");
		document.write("&lt;br&gt;");
		document.write("&lt;table align='center'&gt;");
		for(var r = 1;r&lt;=9;r++){
			document.write("&lt;tr&gt;");
			for(var c = 1;c&lt;=r;c++){
...]]></description><category></category></item><item><title><![CDATA[flaskday05]]></title><link>https://blog.youkuaiyun.com/windmillsign/article/details/106340442</link><guid>https://blog.youkuaiyun.com/windmillsign/article/details/106340442</guid><author>windmillsign</author><pubDate>Mon, 25 May 2020 19:35:02 +0800</pubDate><description><![CDATA[1.查询：
查询所有： 模型类.query.all()    ~  select * from user;
如果有条件的查询：
模型类.query.filter_by(字段名 = 值)   ～  select * from user where 字段=值；
模型类.query.filter_by(字段名 = 值).first()   ～  select * from user where 字段=值 limit…；
select * from user where age&gt;17 and gender=‘]]></description><category></category></item><item><title><![CDATA[flaskday04]]></title><link>https://blog.youkuaiyun.com/windmillsign/article/details/106340400</link><guid>https://blog.youkuaiyun.com/windmillsign/article/details/106340400</guid><author>windmillsign</author><pubDate>Mon, 25 May 2020 19:33:03 +0800</pubDate><description><![CDATA[1.查询：
查询所有： 模型类.query.all()    ~  select * from user;
如果有条件的查询：
模型类.query.filter_by(字段名 = 值)   ～  select * from user where 字段=值；
模型类.query.filter_by(字段名 = 值).first()   ～  select * from user where 字段=值 limit…；
select * from user where age&gt;17 and gender=‘]]></description><category></category></item><item><title><![CDATA[flaskday03]]></title><link>https://blog.youkuaiyun.com/windmillsign/article/details/106340387</link><guid>https://blog.youkuaiyun.com/windmillsign/article/details/106340387</guid><author>windmillsign</author><pubDate>Mon, 25 May 2020 19:32:10 +0800</pubDate><description><![CDATA[1.模板
网页 ----》模板引擎处理 ----〉模板
render_template
{{ 变量 }}
{% if 条件 %}  {%endif%}
for,block,macro,with
{% extends ‘’ %}
{% include ‘’ %}
{% import ‘’ %}
{% set username = ‘’ %}
过滤器：
。。。
自定义过滤器
1。通过方法添加
2。装饰器
2。 蓝图
1。flask-script
pip install flask-script
使用里面的Man]]></description><category></category></item><item><title><![CDATA[flaskday02]]></title><link>https://blog.youkuaiyun.com/windmillsign/article/details/106340374</link><guid>https://blog.youkuaiyun.com/windmillsign/article/details/106340374</guid><author>windmillsign</author><pubDate>Mon, 25 May 2020 19:31:13 +0800</pubDate><description><![CDATA[回顾：
视图：
request
request.method ----&gt; app.url_map
request.args
request.form
…
response

字符串
字典
tuple
response对象
make_response()
render_template()
redirect()  —&gt;  response  重定向

render_template(‘模板名字’,**context)
render_template(‘模板名字’,name=name,age=age]]></description><category></category></item><item><title><![CDATA[flaskday01]]></title><link>https://blog.youkuaiyun.com/windmillsign/article/details/106340366</link><guid>https://blog.youkuaiyun.com/windmillsign/article/details/106340366</guid><author>windmillsign</author><pubDate>Mon, 25 May 2020 19:30:38 +0800</pubDate><description><![CDATA[路由
192.168.1.10:8080
@app.route(’/index’)
def index():
return ‘’

URL : http://192.168.1.10:8080/index
route:
def route(self, rule, **options):
def decorator(f):
self.add_url_rule(rule, endpoint, f, **options)
return f
return decorator
这个装饰器其实就是将rule字符串跟视.]]></description><category></category></item><item><title><![CDATA[Linux day3作业]]></title><link>https://blog.youkuaiyun.com/windmillsign/article/details/105642362</link><guid>https://blog.youkuaiyun.com/windmillsign/article/details/105642362</guid><author>windmillsign</author><pubDate>Mon, 20 Apr 2020 19:13:39 +0800</pubDate><description><![CDATA[1.如何查看passwd⽂件中前三⾏和后三⾏
[root@userwang 4]# head -n 3 passwd;tail -3 passwd
2.设置/test/a.txt属主有读写执⾏权限，属组，有读写，其他账户⽆权限，⽤三种
⽅式实现。
1. chmod 760 /test/a.tx

2. chmod u=rwx,g=rw,o= /test/a.txt
3. chmod u+x,g+w...]]></description><category></category></item><item><title><![CDATA[linux day2作业]]></title><link>https://blog.youkuaiyun.com/windmillsign/article/details/105523385</link><guid>https://blog.youkuaiyun.com/windmillsign/article/details/105523385</guid><author>windmillsign</author><pubDate>Tue, 14 Apr 2020 22:42:09 +0800</pubDate><description><![CDATA[1.如何使⽤命令⽴即重启linux操作系统？

使⽤yum安装nginx，安装完成后，在浏览器⾥，敲：http://你服务器的ip地
址，看看是什么
3.如何查看/etc下的所有⽂件，并以列表格式显示，并且显示隐藏⽂件
4.在家⽬录下⼀次性创建 text/1/2/3/4
（1）在⼦⽬录4下创建⼀个新⽂件1.txt，1.txt内容是/etc⽬录下⽂件的列表
(2) 在⼦⽬录3下创建⼀个⽂件2.txt...]]></description><category></category></item><item><title><![CDATA[linux day2 目录管理 文件管理]]></title><link>https://blog.youkuaiyun.com/windmillsign/article/details/105523372</link><guid>https://blog.youkuaiyun.com/windmillsign/article/details/105523372</guid><author>windmillsign</author><pubDate>Tue, 14 Apr 2020 22:41:40 +0800</pubDate><description><![CDATA[目录和文件管理
	目录管理
		切换目录
			绝对路径：以/开始的路径；相对路径：以当前目录为基准表示指定路径； . 表示当前目录；..表示父目录
			切换到父目录：cd  ..
			切换到子目录：cd 子目录路径
			切换到家目录： 1. cd      2 cd ~
			切换到根目录： cd /
			切换到来源目录：  cd  -
		显示当前目录： pwd
		提示信息:  [r...]]></description><category></category></item><item><title><![CDATA[linux day1]]></title><link>https://blog.youkuaiyun.com/windmillsign/article/details/105504437</link><guid>https://blog.youkuaiyun.com/windmillsign/article/details/105504437</guid><author>windmillsign</author><pubDate>Tue, 14 Apr 2020 09:05:30 +0800</pubDate><description><![CDATA[课程简介
linux服务器配置及常⽤命令centos
开发软件配置及服务环境的搭建
软件的安装和配置
mysql数据库使⽤、monDB使⽤、redius的使⽤
git的使⽤html/css
js、jquery、vue
课程学习⽅式
学习⽅法：
linux学习基本上都是命令和配置命令要多敲多记
掌握基本配置
多在⽹上浏览相关⽂章增⻓⻅识
⼀、操作系统
操作系统是电脑的管家，管理电脑软硬件资源，直接运...]]></description><category></category></item><item><title><![CDATA[Day20笔记，进程线程协程]]></title><link>https://blog.youkuaiyun.com/windmillsign/article/details/105464390</link><guid>https://blog.youkuaiyun.com/windmillsign/article/details/105464390</guid><author>windmillsign</author><pubDate>Sun, 12 Apr 2020 09:09:34 +0800</pubDate><description><![CDATA[一、进程
1.多个进程中的全局变量

#进程的特点：独立性，并发性，动态性

#多个进程间的全局变量：独立性【进程之间是相互独立的，资源不共享】

from multiprocessing import  Process
from time import  sleep

#全局变量
num = 100

def run():
    print("子进程开始")

    global num
 ...]]></description><category></category></item><item><title><![CDATA[day19正则 进程]]></title><link>https://blog.youkuaiyun.com/windmillsign/article/details/105439073</link><guid>https://blog.youkuaiyun.com/windmillsign/article/details/105439073</guid><author>windmillsign</author><pubDate>Fri, 10 Apr 2020 18:10:25 +0800</pubDate><description><![CDATA[一、正则表达式
1.分组匹配

import  re

#() 和  |

#1.
#+：匹配1个或者多个
print(re.search(r"\d+","abc123-d4646gshghg"))
print(re.findall(r"\d+","abc123-d4646gshghg"))
#*：匹配0个或者多个
print(re.search(r"\d*","abc123-d4646gshgh...]]></description><category></category></item><item><title><![CDATA[day18练习题]]></title><link>https://blog.youkuaiyun.com/windmillsign/article/details/105439029</link><guid>https://blog.youkuaiyun.com/windmillsign/article/details/105439029</guid><author>windmillsign</author><pubDate>Fri, 10 Apr 2020 18:04:10 +0800</pubDate><description><![CDATA[利用正则表达式完成下面的操作:
1.用户名匹配
​			要求:	1.用户名只能包含数字 字母 下划线
​						2.不能以数字开头
​						3.⻓度在 6 到 16 位范围内
import re
name=input("请输入用户名：")
result=re.match("[^0-9]\w{5,15}$",name)
print(result)
#或者
def check_usernam...]]></description><category></category></item><item><title><![CDATA[day18笔记 错误和异常 正则表达式]]></title><link>https://blog.youkuaiyun.com/windmillsign/article/details/105418965</link><guid>https://blog.youkuaiyun.com/windmillsign/article/details/105418965</guid><author>windmillsign</author><pubDate>Thu, 09 Apr 2020 20:19:33 +0800</pubDate><description><![CDATA[一、异常和错误
1.概念

Python有两种错误很容易辨认：语法错误和异常
​	Python 的语法错误或者称之为解析错误，是初学者经常碰到的，比如缺少冒号等
​	在程序运行过程中，总会遇到各种各样的错误，有的错误是程序编写有问题造成的，这种错误我们通常称之为bug，bug是必须修复的；有的错误是用户输入造成的，这种错误可以通过检查用户输入来做相应的处理；还有一类错误是完全无法在程序运行过程中预...]]></description><category></category></item><item><title><![CDATA[day17作业]]></title><link>https://blog.youkuaiyun.com/windmillsign/article/details/105418815</link><guid>https://blog.youkuaiyun.com/windmillsign/article/details/105418815</guid><author>windmillsign</author><pubDate>Thu, 09 Apr 2020 20:12:59 +0800</pubDate><description><![CDATA[学生管理系统
学生类Student
属性：学号sid    姓名name		年龄age   性别gender		电话号码tel

学生管理系统Manager
学生管理系统的数据结构设置:
一个学生信息对应一个字典
整个系统的所有学生：所有学生对应一个列表，列表中的元素全是字典
整个系统：一个字典, 字典中有一个键(all_student)， 对应的值是所有学生;
									一个键count...]]></description><category></category></item><item><title><![CDATA[day16作业]]></title><link>https://blog.youkuaiyun.com/windmillsign/article/details/105397681</link><guid>https://blog.youkuaiyun.com/windmillsign/article/details/105397681</guid><author>windmillsign</author><pubDate>Wed, 08 Apr 2020 21:33:57 +0800</pubDate><description><![CDATA[1.用代码实现将制定路径下的音频文件 剪切到 其他路径下
import os
def my_cope(src_path,des_path):
    if not os.path.exists(src_path):
        print("该文件不存在！")
        return
    if os.path.isdir(src_path):
        print("原路径是一...]]></description><category></category></item><item><title><![CDATA[day16笔记 文件（csv）读写拷贝，序列化反序列化]]></title><link>https://blog.youkuaiyun.com/windmillsign/article/details/105394734</link><guid>https://blog.youkuaiyun.com/windmillsign/article/details/105394734</guid><author>windmillsign</author><pubDate>Wed, 08 Apr 2020 19:04:46 +0800</pubDate><description><![CDATA[作业讲解

#1.写一个计算器工具类Calculator，可以进行加、减、乘、除计算

#注意1：工具类:使用过程以简便为主，可以直接使用类名调用函数：类方法【cls】和静态方法
class Calculator(object):
 @staticmethod
 def add(x,y):
     return x + y

 @staticmethod
 def sub(x, y):
    ...]]></description><category></category></item></channel></rss>