拿来就能用!Python 每天定时发送一句情话 | 原力计划

news2024/2/27 16:07:52

作者 | Baldwin_KeepMind

出品 | CSDN博客

我的日记 4月23日 晴

你三天没回我的消息,在我孜孜不倦地骚扰下你终于舍得回我了,你说‘nmsl’我想这一定是有什么含义吧!噢!我恍然大悟,原来是尼美舒利颗粒。

她知道我关节炎,让我吃尼美舒利颗粒,她还是关心我的但是又不想显现的那么热情的。

天啊!她好高冷,我好像更喜欢她了呢!

你看,虽然女神经常不理我,但是还是会偷偷地关心我,虽然她不直说,但是我都懂。

唯一的问题就是,我最近很忙,忙到都没有时间去给女神发“早安”了。不可以!“早安”绝对不能断,这是我对女神诚挚的爱,女神虽然不会回复我,但是她肯定都记在心里,不回复我肯定是在考验我!

作为一名无所不能的程序猿,我立刻就想到为什么不用Python爬取情话,然后每天定时发送给她呢?

爬取情话

选取情话资源

首先我们需要去网上找到合适的情话资源,如果懒得自己找,可以用这个:http://www.1juzi.com/new/150542.html

分析网页资源

1. 定位情话资源

鼠标放在我们要爬取的情话上快速按下右键+检查(元素)。

先在就可以看到我们的情话在页面中是什么位置了。

2. 定位标签

在开发者工具中,我们轻松的旧定位到了我们的情话的标签,就是上图红框里的内容。

3. 分析请求方式

在刚才的界面(不要退出开发者模式)下刷新:

在Network栏目下找到我们请求的那个资源,在他的Headers中找到这个资源请求的方式,这里是GET。

使用urllib库获取资源

1、安装urllib库

这一步是怕你服务器里没有urllib2库,等会儿会造成麻烦才添加上的,如果你没有添加该库,请百度添加方法。

2、请求资源网站

代码:

import urllib.request

url = "http://www.1juzi.com/new/150542.html"
html = urllib.request.urlopen(url).read()
print(html)

结果:

......

<h1>ÿÌìÒ»¾äСÇé»°</h1>
<div class="content"><div class="news"><script type="text/javascript">news1();</script></div>
<p>1¡¢½«Äã·Å½øÎÒÐÄÀï×îÖØÒªµÄλÖã¬ÓÃÐÄÀ´¿ÌÄãµÄÃû×Ö¡£</p>
<p>2¡¢°®ÊÇ̤Æƺ쳾Íû´©ÇïË®£»°®ÊÇÒ»ÉúÒ»ÊÀÚ¤Ú¤Âֻأ»°®Ä㣬ÎÒ²»ÎÊÀíÓÉ¡£</p>
<p>3¡¢×§ÄãÈ뻳£¬ÓèÄãÒ»ÊÀÏà°é£¬ÓµÄãÈ뻳£¬»¤ÄãÒ»ÊÀƽ°²¡£</p>
<p>4¡¢ºÎÖ¹ÊÇÒ°ÐÄ£¬ÎÒԤıÁËÒ»±²×ÓµÄÄîÏ룬´ÓÓö¼ûÄ㿪ʼ£¬²»¼û»ÆÍÁ²»ËÀÐÄ¡£</p>
<p>5¡¢ÎÒºóÀ´ÏëÁËÏ룬ÎÒ²»µ¢ÎóÄ㣬»¹»áÓбðÈ˵¢ÎóÄ㣬ÄÇÎÒ²»¸ÊÐÄ£¬»¹ÊÇÎÒÀ´µ¢ÎóÄã°É¡£</p>
<p>6¡¢¼ûµ½ÄãµÄÄÇÒ»¿ÌÎҾͲ»ÖªËù´ë£¬ÓеÄÖ»ÊǵÄÐÄÌø£¬ÊÇÄã¸Ä±äÁËÎÒ£¬ÒÔÇ°ÎÒ´Ó²»»áÕâÑùµÄ¡£¼ÙÈçÓÐÒ»¸öÈËÄÜÈÃÎÒÐĸÊÇéÔ¸µØ¸Ä±äÄǾÍÊÇÄã¡£</p>
<p>7¡¢ÅãÎÒµ½¿É¿ÉÎ÷ÀïÈ¥¿´º£²»ÒªÎ´À´Ö»ÒªÄãÀ´¡£</p>
<p>8¡¢Ã¿Ò»Ì춼ΪÄãÐÄÌø£¬Ã¿Ò»¿Ì¶¼±»Äã¸Ð¶¯£¬Ã¿Ò»Ã붼ΪÄãµ£ÐÄ¡£ÓÐÄãµÄ¸Ð¾õÕæºÃ¡£</p>
<p>9¡¢²»¸ÒÔÙÌýÇé¸è£¬µ±ÎÒ¸öÈË£¬ÒòΪÑÛÀáÖ¹²»×¡¡£</p>
......

小问号,你是否有很多朋友?

我们爬下来的都是乱码,发给女神一堆乱码,女神可能还会以为是我们给她发的暗语,说不定还要花时间去寻找解密方法,想想都累,不能这个样子!

其实出现乱码的原因主要网页的编码方式和我们爬取程序的编码方式不一样造成的,只要找到网页的编码方式就好。

3、设置解码类型

有3种方式:

1.从网页Content-Type中获取编码方式

2.第三方库智能识别编码,常用chardet等

3.猜测编码

我们这里其实在请求头的Content-Type里有编码类型,但是为了保险起见,也是为了能应用到更多的资源网站,这里演示以下chardet的用法,猜测编码的使用请自行百度。

chardet获取编码类型

代码:

import urllib.request

import chardet
url = "http://www.1juzi.com/new/150542.html"
html = urllib.request.urlopen(url).read()
print("html头中的charset:", chardet.detect(html))

结果:

/usr/bin/python3.7 /home/baldwin/PycharmProjects/IAmADog/spider/Spider.py
html头中的charset:{'encoding': 'GB2312', 'confidence': 0.99, 'language': 'Chinese'}
Process finished with exit code 0

Get!!!编码方式为GB2312!

设置解码

代码:

import urllib.request
import chardet

url = "http://www.1juzi.com/new/150542.html"
html = urllib.request.urlopen(url).read()
charset = chardet.detect(html).get("encoding")
htmlText = html.decode(charset,errors = 'ignore')
print(htmlText)

结果:

......

<h1>每天一句小情话</h1>
<div class="content"><div class="news"><script type="text/javascript">news1();</script></div>
<p>1、将你放进我心里最重要的位置,用心来刻你的名字。</p>
<p>2、爱是踏破红尘望穿秋水;爱是一生一世冥冥轮回;爱你,我不问理由。</p>
<p>3、拽你入怀,予你一世相伴,拥你入怀,护你一世平安。</p>
<p>4、何止是野心,我预谋了一辈子的念想,从遇见你开始,不见黄土不死心。</p>
<p>5、我后来想了想,我不耽误你,还会有别人耽误你,那我不甘心,还是我来耽误你吧。</p>
<p>6、见到你的那一刻我就不知所措,有的只是的心跳,是你改变了我,以前我从不会这样的。假如有一个人能让我心甘情愿地改变那就是你。</p>
<p>7、陪我到可可西里去看海不要未来只要你来。</p>
<p>8、每一天都为你心跳,每一刻都被你感动,每一秒都为你担心。有你的感觉真好。</p>
......

哦吼!搞定!

4、封装代码

刚才我们已经实现了资源的获取,但是这样的代码用起来太不方便了,我们把它封装在方法里:

......
import urllib.request
import chardet

def getHtml(url):
    """
    获取网页html文本资源
    :param url: 网页链接
    :return: 网页文本资源
    """
    html = urllib.request.urlopen(url).read()
    charset = chardet.detect(html).get("encoding")
    htmlText = html.decode(charset, errors='ignore')
    return htmlText

解析网页资源

解析网页的话,需要第三方插件Beautiful Soup来提取 xml 和 HTML 中的数据。

获取content节点内容

我们想要的资源都在一个class为”content“的div节点下,我们现在先获取这个节点的所有内容。

部分代码:

soup = BeautifulSoup(htmlText,"html.parser")
"获取content节点的内容"
div_node = soup.find('div', class_='content')
print(div_node.get_text)

结果:

/usr/bin/python3.7 /home/baldwin/PycharmProjects/IAmADog/spider/Spider.py

<bound method Tag.get_text of <div class="content"><div class="news"><script type="text/javascript">news1();</script></div>

<p>1、将你放进我心里最重要的位置,用心来刻你的名字。</p>
<p>2、爱是踏破红尘望穿秋水;爱是一生一世冥冥轮回;爱你,我不问理由。</p>
<p>3、拽你入怀,予你一世相伴,拥你入怀,护你一世平安。</p>
<p>4、何止是野心,我预谋了一辈子的念想,从遇见你开始,不见黄土不死心。</p>
<p>5、我后来想了想,我不耽误你,还会有别人耽误你,那我不甘心,还是我来耽误你吧。</p>
......

<u>本文地址:<a href="http://www.1juzi.com/new/150542.html">每天一句小情话</a>http://www.1juzi.com/new/150542.html</u>
<li class="page"><a href="/aiqingyulu/">上一页</a><span class="current">1</span><a href="/new/150543.html">2</a><a href="/new/150541.html">下一页</a></li>
</div>
Process finished with exit code 0

2.4.3. 获取p节点内容

上一步我们已经获取到了我们的主要内容,然后总结可以看出我们想要的文本内容在P节点中,那么现在就来获取它。

部分代码:

soup = BeautifulSoup(htmlText,"html.parser")
"获取div节点的内容"
div_node = soup.find('div', class_='content')
"获取P节点内容"
p_node = div_node.find_all('p')
for content in p_node:
print(content.get_text())

结果:

/usr/bin/python3.7 /home/baldwin/PycharmProjects/IAmADog/spider/Spider.py

1、将你放进我心里最重要的位置,用心来刻你的名字。
2、爱是踏破红尘望穿秋水;爱是一生一世冥冥轮回;爱你,我不问理由。
3、拽你入怀,予你一世相伴,拥你入怀,护你一世平安。
4、何止是野心,我预谋了一辈子的念想,从遇见你开始,不见黄土不死心。
5、我后来想了想,我不耽误你,还会有别人耽误你,那我不甘心,还是我来耽误你吧。
......
69、有时,爱也是种伤害,残忍的人句子大全http://Www.1juzI.coM/,选择伤害别人,善良的人,选择伤害自己。
......
Process finished with exit code 0

4、处理数据

注意一下第69剧,这里面有网站的链接,把这个一起发给女神不就露馅了么,现在得想办法给她删掉。同时情话前面的编号也得删掉。

删除特定标签

我们会查看一下数据就会发现,所有的链接都是在U标签里的,那我们可以直接在获取到div标签内容后就把u标签删掉

"删除特定标签u"
[s.extract() for s in div_node('u')]

删除序号

我们发现,序号与情话之间是用顿号分割的,那么我们可以将每个P标签下的内容用split分割并且取出第二个元素就好了。

部分代码:

"获取P节点内容"
p_node = div_node.find_all('p')
for content in p_node:
    "以’、‘分割,并且取出第2个元素"
    text = content.get_text().split("、",1)[1]
    print(text)

结果:

/usr/bin/python3.7 /home/baldwin/PycharmProjects/IAmADog/spider/Spider.py

将你放进我心里最重要的位置,用心来刻你的名字。
爱是踏破红尘望穿秋水;爱是一生一世冥冥轮回;爱你,我不问理由。
拽你入怀,予你一世相伴,拥你入怀,护你一世平安。
何止是野心,我预谋了一辈子的念想,从遇见你开始,不见黄土不死心。
我后来想了想,我不耽误你,还会有别人耽误你,那我不甘心,还是我来耽误你吧。
......
Process finished with exit code 0

nice啊,到这一步你已经把我们需要的情话都提取出来了!!!

封装数据备用

这样一句一句的也不好处理啊!不如把它放到list里,等下定时任务的时候可以用的时候取出来就好。

部分代码:

sentenceList = list()
......
"获取P节点内容"
p_node = div_node.find_all('p')
for content in p_node:
    "以’、‘分割,并且取出第2个元素"
    text = content.get_text().split("、", 1)[1]
    "追加到list尾部"
    sentenceList.append(text)

print(sentenceList):

/usr/bin/python3.7 /home/baldwin/PycharmProjects/IAmADog/spider/Spider.py

['将你放进我心里最重要的位置,用心来刻你的名字。', '爱是踏破红尘望穿秋水;爱是一生一世冥冥轮回;爱你,我不问理由。', '拽你入怀,予你一世相伴,拥你入怀,护你一世平安。', '何止是野心,我预谋了一辈子的念想,从遇见你开始,不见黄土不死心。',  ......]

Process finished with exit code 0

5、封装(爬虫代码最终)

爬虫是做好了,但是总觉得乖乖的,我等下还得在其他地方用,不如这里以面向对象的思想把爬虫封装一下。

import urllib.request
from bs4 import BeautifulSoup
import chardet

def __getHtml(url):
    """
    私有方法:获取网页html文本资源
    :param url: 网页链接
    :return: 网页文本资源
    """
    html = urllib.request.urlopen(url).read()
    charset = chardet.detect(html).get("encoding")
    htmlText = html.decode(charset, errors='ignore')
    return htmlText

def __sloveHtml(htmlText):

    """
    私有方法:解析HtmlText
    :param htmlText: 传入的资源
    """
    sentenceList = list()
    soup = BeautifulSoup(htmlText, "html.parser")
    "获取content节点的内容"
    div_node = soup.find('div', class_='content')

    "删除特定标签u"
    [s.extract() for s in div_node('u')]

    "获取P节点内容"
    p_node = div_node.find_all('p')
    for content in p_node:

        "以’、‘分割,并且取出第2个元素"
        text = content.get_text().split("、", 1)[1]
        "追加到list尾部"
        sentenceList.append(text)
    return sentenceList

def getSentenceList(url):

    """
    Spider提供的公用方法,提供情话list
    :param url: 获取情话的地址
    :return: 情话list
    """
    return __sloveHtml(__getHtml(url))

爬虫总结

这一部分主要用到的类库有:BeautifulSoup,urllib,chardet。

主要思想:封装


手机短信发送发送

本来想用微信或者QQ发送来着,但是时隔两年,qqbot、itchat、wxpy等第三方库都失效了,没办法就来用手机短信发送好了。

1. Twilio

Twilio是一个做成开放插件的电话跟踪服务(call-tracking service)

Twilio公司致力于帮助开发者在其应用里融入电话、短信等功能,该公司周二又推出了一项称为Twilio Client的新服务,可帮助开发者整合灵活而低成本的网络电话(VoIP)功能。

VoIP即Skype和谷歌电话等服务使用的技术,要提供VoIP服务通常需要准备相应的基础设备,而Twilio Client免除了开发者的这一麻烦,可让他们便捷地在应用里加入网络电话元素。

安装

安装过程比较简单,直接pip就好:

sudo pip3 install twilio

等待安装完成

Successfully built twilio
Installing collected packages: PyJWT, twilio
Successfully installed PyJWT-1.7.1 twilio-6.38.1

注册并获取三个重要参数

参考文章:https://zhuanlan.zhihu.com/p/67716042

简单代码实现发送短信实验

代码:

from twilio.rest import Client  # 导包
account_sid = '你的account_sid'
auth_token = '你的auth_token'
client = Client(account_sid, auth_token)
message = client.messages.create(
    from_='+×××××××××',
    body='亲爱的H,以后我每天都会给你发送一条信息哦!!!',
    to='你要发送到的手机号(以+86开头)'
)
print(message.sid)

控制台输出:

/usr/bin/python3.7 /home/baldwin/PycharmProjects/IAmADog/qqsend/Send.py
SMfe64f40f2ac24b8ca82121d57147312c
Process finished with exit code 0

手机接收短信:

OK!到这里我们已经简单实现了发送短信的功能,现在要去把这个功能封装一下。

实现发送短信的功能

封装代码:

from twilio.rest import Client  # 导包

def sendSMSMsg(content, tel):

    """
        向某个手机号发送短信内容
    :param content: 短信内容
    :param tel: 手机号
    """
    account_sid = '你的account_sid'
    auth_token = '你的auth_token'
    client = Client(account_sid, auth_token)
    client.messages.create(
        from_='+18634171608',
        body=content,
        to=tel
    )
    print('Send :', content, 'to tel:', tel, 'syccessfully!!!')
if __name__ == '__main__':
    sendSMSMsg("Hello?" ,"+×××××××××")

测试结果:

/usr/bin/python3.7 /home/baldwin/PycharmProjects/IAmADog/qqsend/Send.py
Send : Hello? to tel: +8618436354553 syccessfully!!!
Process finished with exit code 0

手机接收短信:

发送短信总结

  1. 注册twilio

  2. 获取三个参数:account_sid,auth_token,TRIAL NUMBER

  3. 引入twilio

  4. 设置你要发送到的手机号和内容

操作还算是比较简单的,这部分主要用到twilio库。

定时发送短信

这一步算是我们的主程序了,在这一部分里,我们要使用之前的代码先获取情话list,再设置定时任务,每天固定的时间点把短信发到女神手机上。

Python定时任务

Python 中的定时任务框架还挺多的,我们现在的需求是每天早上8点钟执行一个任务,在不到这个时间的时候不发送信息,为了简便理解,我打算直接循环扫描系统当前时间,如果到了我们需要的那个时间点,就发送,不到的时候就一直扫描

代码实现

import time
while True:
    # 刷新
    time_now = time.strftime("%H:%M:%S", time.localtime())
    # 此处设置每天定时的时间
    if time_now == "15:29:00":
        # 需要执行的动作
        print('定时任务执行一次')
        time.sleep(2)  # 因为以秒定时,所以暂停2秒,使之不会在1秒内执行多次

结果:

/usr/bin/python3.7 /home/baldwin/PycharmProjects/IAmADog/DoWork.py

定时任务执行一次
Traceback (most recent call last):
File "/home/baldwin/PycharmProjects/IAmADog/DoWork.py", line 7, in <module>
    time_now = time.strftime("%H:%M:%S", time.localtime())
KeyboardInterrupt
Process finished with exit code 1

我是15:28:00的时候运行程序的,在设置时刻确实是执行了程序。

下面的异常是因为我手动退出了程序,这里不用管他。

具体实现发送情话

我们这里整理一下具体需求:

1.定时间点发送(上面已经实现了)

2.每次发送的时候从list中取出一个句子,下一次取出下一条,不能重复

3.list中的句子发送完毕之后要发短信通知我

取句子

思路:设置一个全局变量index,代表着下一条要发送的句子的下标,每次发送短信后,下标要增加1

发送完毕通知管理员

思路:每次进入任务但是发送短信之前都要比较index的值与list的长度(现在想起来,设计程序的时候用栈来储存数据会更好),如果index已经越界,直接给管理员发短信通知。

实现

from spider import Spider
from send import Send
import time
TIME_TO_DO = '08:30:00'  # 发送时间点
MSG_SUFFIX = '\n来自你的小可爱——Baldwin'  # 短信后缀
SOURCE_URL = 'http://www.1juzi.com/new/150542.html'  # 情话资源地址
SEND_TO_TEL = '+8618436354553'  # 女神的手机号
SEND_TO_ME = '舔狗,给女神发的短信已经用光了,快来更新!!!'
MY_TEL = '+8618436354553'  # 舔狗手机号
index = 0  # 下一条短信的下标
sentenceList = Spider.getSentenceList(SOURCE_URL)  # 情话列表
while True:
    # 刷新
    time_now = time.strftime("%H:%M:%S", time.localtime())
    # 此处设置每天定时的时间
    if time_now == TIME_TO_DO:
        # 需要执行的动作
        # 判断当前list有没有用光
        if index >= len(sentenceList):
            # 用光了就短信通知我
            Send.sendSMSMsg(SEND_TO_ME, MY_TEL)
            # 跳出
            break
        # 给女神发短信
        content = sentenceList[index] + MSG_SUFFIX
        Send.sendSMSMsg(content, SEND_TO_TEL)
        # 下标加一
        index += 1
        # 因为以秒定时,所以暂停2秒,使之不会在1秒内执行多次
        time.sleep(2)

debug模式下的各项测试:

短信发送测试

在idea debug模式下可以对time_now参数进行设置,把它设置成我们在前面要发送短信的那个时间点,成功进行了短信发送:

管理员通知测试

同样的在debug模式下,设置index的值为len(sentenceList),程序进入通知管理员模块中,这里不再演示。

封装

from spider import Spider
from send import Send
import time
TIME_TO_DO = '08:30:00'  # 发送时间点
MSG_SUFFIX = '\n来自你的小可爱——Baldwin'  # 短信后缀
SOURCE_URL = 'http://www.1juzi.com/new/150542.html'  # 情话资源地址
SEND_TO_TEL = '+8618436354553'  # 女神的手机号
SEND_TO_ME = '舔狗,给女神发的短信已经用光了,快来更新!!!'
MY_TEL = '+8618436354553'  # 舔狗手机号

def doSend():
    index = 0  # 下一条短信的下标
    sentenceList = Spider.getSentenceList(SOURCE_URL)  # 情话列表
    while True:
        # 刷新
        time_now = time.strftime("%H:%M:%S", time.localtime())
        # 此处设置每天定时的时间
        if time_now == TIME_TO_DO:
            # 需要执行的动作
            # 判断当前list有没有用光
            if index >= len(sentenceList):
                # 用光了就短信通知我
                Send.sendSMSMsg(SEND_TO_ME, MY_TEL)
                # 跳出
                break
            # 给女神发短信
            content = sentenceList[index] + MSG_SUFFIX
            Send.sendSMSMsg(content, SEND_TO_TEL)
            # 下标加一
            index += 1
            # 因为以秒定时,所以暂停2秒,使之不会在1秒内执行多次
            time.sleep(2)

# 主程序入口
if __name__ == '__main__':
    doSend()

小总结

这部分主要用到的模块:time,然后记得要把前两个我们自己做的模块导入进来。

总结

这个程序相对来说还算是比较容易的,只要跟着文章一步步来基本上不互出问题。

最后只要运行我们最后一个模块中主程序入口就好了,你也可以按照自己需求修改配置达到不同的效果。

我现在就去告诉女神去。

嘿嘿!女神秒回的,开心!

项目地址:https://gitee.com/dikeywork/IAmADog

版权声明:本文为CSDN博主「Baldwin_KeepMind」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:

https://blog.csdn.net/shouchenchuan5253/article/details/105753596

今日福利

遇见大咖

由 CSDN 全新专为技术人打造的高端对话栏目《大咖来了》来啦!

CSDN 创始人&董事长、极客帮创投创始合伙人蒋涛携手京东集团技术副总裁、IEEE Fellow、京东人工智能研究院常务副院长、深度学习及语音和语言实验室负责人何晓冬,来也科技 CTO 胡一川,共话中国 AI 应用元年来了,开发者及企业的路径及发展方向!

戳链接或点击阅读原文,直达报名:https://t.csdnimg.cn/uZfQ

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.dtcms.cn/news/show-75159.html

如若内容造成侵权/违法违规/事实不符,请联系七分地网进行投诉反馈,一经查实,立即删除!

相关文章

CSS 盒子模型(转)

CSS中&#xff0c; Box Model叫盒子模型&#xff08;或框模型&#xff09;&#xff0c;Box Model规定了元素框处理元素内容&#xff08;element content&#xff09;、内边距&#xff08;padding&#xff09;、边框&#xff08;border&#xff09; 和 外边距&#xff08;margin…

25 岁“天才少年”曹原再发一篇 Nature!9 个月的第三篇 Nature!

点击上方“视学算法”&#xff0c;选择加"星标"或“置顶”重磅干货&#xff0c;第一时间送达来源 | 微算云平台&#xff08;Sapere Aude&#xff09;、Nature、纳米人、安徽商报、新安晚报 、科学网、募格学术转自 | 募格学术新年伊始&#xff0c;2021年2月1日&#…

Linux主分区,扩展分区,逻辑分区的联系和区别

基本概念 硬盘分区有三种&#xff0c;主磁盘分区、扩展磁盘分区、逻辑分区。一个硬盘主分区至少有1个&#xff0c;最多4个&#xff0c;扩展分区可以没有&#xff0c;最多1个。且主分区扩展分区总共不能超过4个。逻辑分区可以有若干个。在windows下激活的主分区是硬盘的启动分区…

忘了python关键语句?这份备忘录拯救你的记忆

忘了Python关键语句&#xff1f;这份备忘录拯救你的记忆 今天要介绍的 Python 3 Cheat Sheet 由法国国家科学研究中心&#xff08;CNRS&#xff09;的法国机械工程与信息技术实验室&#xff08;LIMSI&#xff09;的工程师 Laurent Pointal 总结。这个简单的 Cheat Sheet 专注于…

干货|神经网络及理解反向传播

点击上方“小白学视觉”&#xff0c;选择加"星标"或“置顶”重磅干货&#xff0c;第一时间送达一、人工神经网络简述下面开始说神经网络。注意&#xff0c;当我们说N层神经网络的时候&#xff0c;我们没有把输入层算入&#xff08;因为输入层只是输入数据&#xff09…

vPower系列1: vMotion-没有vMotion,虚拟化只是玩具

vPower今天开讲&#xff0c;第一篇vMotion。vMotion是虚拟化可以支撑核心应用的重要前提&#xff0c;没有vMotion&#xff0c;虚拟化只是玩具&#xff0c;只能应用在实验环境和开发环境。为什么这么说呢&#xff1f;为什么会有vMotion&#xff1f;vMotion解决了虚拟平台上的什么…

linux删除指定创建时间文件(文件夹)脚本

环境 解法 一个for循环 remove.sh #/bin/bash fileNamels --full-time | grep 2016 | awk {print$9} for file in $fileName do rm -rf $file; echo "************已删除$file************" #echo $file done 授予执行权直接跑即可。 转载于:https://www.cnblogs.com…

Mysql,再见吧!select * !

点击上方“方志朋”&#xff0c;选择“设为星标”回复”666“获取新整理的面试文章作者&#xff1a;AIOps应用程序慢如牛&#xff0c;原因多多&#xff0c;可能是网络的原因、可能是系统架构的原因&#xff0c;还有可能是数据库的原因。那么如何提高数据库SQL语句执行速度呢&am…

AjaxControltoolkit(工具包)安装步骤说明

本来打算做一个系统搜索中Ajax AutoComplete自动提示的效果,想尝试一下以前用AjaxControlToolkit中控件,在官网上下载一个AjaxControlToolkit2.0版本我尽然忘了如何安装.很是汗了一把. 看来人都是有惰性的,哪怕自己认为以前比较熟练自信的东西 如果时间一长不做回顾还是不行的 …

写代码神器!双屏敲代码飞起,包邮送一台!

写代码如果用多个屏是件很爽的事情&#xff0c;敲代码Bug多不多不重要&#xff0c;逼格必须先到位&#xff01;所以&#xff0c;小编联合9位公众号主给大家送一款全新的金正(NINTAUS)20英寸直面黑色电脑显示器。写代码逼格高&#xff01;赠送规则本次活动联合了9个号主一起赞助…

很多都是python很简单吗,但是要如何才能入门python并精通呢?

1&#xff0c;python怎么学 一般来说,Python几个月应该是可以入门了。如果你几个月还没有入门&#xff0c;一定是方法不对&#xff0c;要么就是偷懒了.我在公众号里面有一篇文章详细写过 ‘初学者上来不要学爬虫’,爬虫虽然非常有趣&#xff0c;但是不适合小白用户。这里我列出…

有哪些好看的CNN模型画法?

点击上方“小白学视觉”&#xff0c;选择加"星标"或“置顶”重磅干货&#xff0c;第一时间送达编辑&#xff1a;忆臻本文仅作为学术分享&#xff0c;如果侵权&#xff0c;会删文处理机器学习算法与自然语言处理报道有哪些好看的CNN模型画法&#xff1f;作者&#xff…

C语言回溯算法解决N皇后问题

回溯算法的模型是 x, not satisfy ? x-- : continue. 代码中x作列号&#xff0c;y[x]保存第x列上皇后放置的位置。 1 #include<stdio.h>2 #include<math.h>3 #define N 54 int position_check(int,int*);5 void print_board(int count,int* y);6 int main()7 {8 …

面试官吐槽:“Python程序员就是不行!”网友:我能把你面哭!

最近几年&#xff0c;Python莫名火了起来&#xff0c;很多公司都想赶上这“莫名”的热潮&#xff0c;招聘到大牛人才。但是&#xff0c;最近一个HR在社交网站的吐槽又火了&#xff1a;那么问题来了&#xff0c;市面上为什么鲜有企业满意的优秀的Python程序员&#xff1f;企业到…

告别「灭霸式审稿」,IJCAI-21 的投稿者爽到家!

点击上方“视学算法”&#xff0c;选择加"星标"或“置顶”重磅干货&#xff0c;第一时间送达转自 | 新智元编辑 | Q没有「灭霸式审稿」的IJCAI-21&#xff0c;你的论文中了吗&#xff1f;还记得去年的那封来自时任程序主席Christian Bessiere的邮件拒信吗&#xff1a…

50k大牛告诉你Python怎么学,10个特性带你快速了解python

前言 如果你是一个正在学习python的c、c or java程序员&#xff0c;又或者你是刚刚接触python&#xff0c;刚刚开始学习python&#xff0c;那么&#xff0c;请认真看完这10个语言特性&#xff0c;你会受益匪浅的。 关注转发私信小编“资料”即可领取2021最新全套python零基础入…

医疗人工智能前景——医学影像

点击上方“小白学视觉”&#xff0c;选择加"星标"或“置顶”重磅干货&#xff0c;第一时间送达作者&#xff1a;Arya医学图像AI&#xff08;博士&#xff09;在读&#xff0c;研究方向为unsupervised deep learning; multi-modal; PET-CT. 写这篇文章梳理一下学习思路…

TCP/IP 笔记 1.3 IP:网际协议

---恢复内容开始--- I P是T C P / I P协议族中最为核心的协议。所有的 T C P、U D P、I C M P及I G M P数据都以I P数据报格式传输。  不可靠( u n r e l i a b l e)的意思是它不能保证 I P数据报能成功地到达目的地。 I P仅提供最好的传输服务。如果发生某种错误时&#xff…

eclipse 中配置maven环境

选择 菜单栏 window -preferences-maven- installations 点击add 添加自己的maven 库 配置 setting 第一个为全局配置 第二个为用户配置可以覆盖全局配置 当在用户配置的镜像源找不到 响应的依赖的时候会在全局配置的镜像源中寻找 setting.xml 中配置镜像源 在mirrors标签中添加…

Nacos 1.3.0 发布, 全新内核构建

点击上方“方志朋”&#xff0c;选择“设为星标”回复”666“获取新整理的面试文章1.3.0版本开始修炼内功&#xff0c;聚焦“简单”、“性能”、“高可用”这核心的三个点进一步提升Nacos核心竞争力。内嵌关系型分布式数据库&#xff0c;简化集群部署模式集群管理下沉统一&…