前言:

放假学习完web漏洞后。想写一个脚本

然而自己菜无法像大佬们一样写出牛逼的东西

尝试写了,都以失败告终。

还有一个原因:上学时间不能及时看到,自己也比较懒。邮件能提醒自己。

需要安装的模块:

requests模块

smtplib模块

email模块

正文:

这个脚本的原理其实很简单把freebuf上的a标签抓取

然后获去href里面的链接与title的标题写入到txt,读取txt。发送邮箱

架空txt。间隔12个小时发一次,加上循环。

代码:

import requests
from bs4 import BeautifulSoup
import smtplib
import re
from email.mime.text import MIMEText
from email.header import Header
import time
while True:
def freebuf():
url="http://www.freebuf.com"
headers={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0'}
res=requests.get(url,headers)
bw=res.content.decode('utf-8')
allsectool=re.findall('<a href="http://www.freebuf.com/sectool/.*?.html" target="_blank" title=".*?">',bw)
allsectoolurl=BeautifulSoup(str(allsectool),'html.parser')
osw=allsectoolurl.find_all('a')
for u1 in osw:
u3=u1.get('href')
u4=u1.get('title')
print(u3,"标题:",u4,file=open('freebuf.txt','a',encoding='utf-8')) networkall=re.findall('<a href="http://www.freebuf.com/articles/network/.*?.html" target="_blank" title=".*?">',bw)
neturl=BeautifulSoup(str(networkall),'html.parser')
netus=neturl.find_all('a')
for y in netus:
neturls=y.get('href')
netiles=y.get('title')
print(neturls,"标题:",netiles,file=open('freebuf.txt','a',encoding='utf-8')) jobsall=re.findall('<a href="http://www.freebuf.com/jobs/.*?.html" target="_blank" title=".*?">',bw)
jobsurl=BeautifulSoup(str(jobsall),'html.parser')
jobsurly=jobsurl.find_all('a')
for m in jobsurly:
m2=m.get('href')
m3=m.get('title')
print(m2,"标题:",m3,file=open('freebuf.txt','a',encoding='utf-8')) newsall=re.findall('<a href="http://www.freebuf.com/news/.*?.html" target="_blank" title=".*?">',bw)
newsurl=BeautifulSoup(str(newsall),'html.parser')
usd=newsurl.find_all('a')
for g2 in usd:
psw=g2.get('href')
pswt=g2.get('title')
print(psw,"标题:",pswt,file=open('freebuf.txt','a',encoding='utf-8')) vulsall=re.findall('<a href="http://www.freebuf.com/vuls/.*?.html" target="_blank" title=".*?">',bw)
vulsallurl=BeautifulSoup(str(vulsall),'html.parser')
gew=vulsallurl.find_all('a')
for hp in gew:
hpw=hp.get('href')
gpw2=hp.get('title')
print(hpw,"标题:",gpw2,file=open('freebuf.txt','a',encoding='utf-8')) system=re.findall('<a href="http://www.freebuf.com/articles/system/166121.html" target="_blank" title=".*?">',bw)
systemurl=BeautifulSoup(str(system),'html.parser')
sys=systemurl.find_all('a')
for v in sys:
v1=v.get('href')
v2=v.get('title')
print(v1,"标题:",v2,file=open('freebuf.txt','a',encoding='utf-8')) freebuf() def Email():
try:
lk = open('freebuf.txt', 'r',encoding='utf-8')
pg = lk.read()
lk.close()
except Exception as g:
print('[-]报错', g)
sender="发送人"
recivs="接收人"
message=MIMEText('''
freebuf新闻快报\n
{}\n
'''.format(str(pg)),'plain','utf-8')
message['From']=Header('发送人')
sub="freebuf安全快报"
message['subject']=Header(sub,'utf-8')
try:
smtp=smtplib.SMTP()
smtp.connect("smtp服务",25)
smtp.login("你自己的邮箱","你自己的邮箱密码")
smtp.sendmail(sender,recivs,message.as_string())
print('[+]发送成功')
except Exception as l:
print('[-]发送失败',l) ws=open('freebuf.txt','w')
Email()
time.sleep(43200)

 运行截图

qq邮箱接收到的:

可以根据自己的喜好去抓取。

python构造一个freebuf新闻发送脚本的更多相关文章

  1. 用python写一个自动化盲注脚本

    前言 当我们进行SQL注入攻击时,当发现无法进行union注入或者报错等注入,那么,就需要考虑盲注了,当我们进行盲注时,需要通过页面的反馈(布尔盲注)或者相应时间(时间盲注),来一个字符一个字符的进行 ...

  2. python构造一个http请求

    我们经常会用python来进行抓包,模拟登陆等等, 势必要构造http请求包. http的request通常有4个方法get,post,put,delete,分别对应于查询,更新,添加,删除.我们经常 ...

  3. Python 网络爬虫(新闻采集脚本)

    =====================爬虫原理===================== 通过Python访问新闻首页,获取首页所有新闻链接,并存放至URL集合中. 逐一取出集合中的URL,并访问 ...

  4. python写一个防御DDos的脚本(请安好环境否则无法实验)

    起因: 居然有ddos脚本,怎么可以没防御ddos的脚本! 开始: 1.请执行 install.py安装好DDos-defalte,会在root目录下多出这个文件夹 代码: 2.然后执行fyddos. ...

  5. python写一个翻译的小脚本

    起因: 想着上学看不懂English的PDF感慨万分........ 然后就有了翻译的脚本. 截图: 代码: #-*- coding:'utf-8' -*- import requests impor ...

  6. Python写一个京东抢券脚本

    最近看到京东图书每天有优惠券发放,满200减100,诱惑还是蛮大的.反正自己抢不到,想着写个脚本试试. 几个关键步骤 获取优惠券的url 直接审查元素 获取cookie 通过本地代理,比如BurpSu ...

  7. python 构造一个可以返回多个值的函数

    为了能返回多个值,函数直接return 一个元组就行了 看上去返回了多个值,实际上是先创建了一个元组然后返回的.这个语法看上去比较奇怪,实际上我们使用的是逗号来生成一个元组,而不是用括号 >&g ...

  8. Python 构造一个可接受任意数量参数的函数

    为了能让一个函数接受任意数量的位置参数,可以使用一个* 参数 在这个例子中,rest 是由所有其他位置参数组成的元组.然后我们在代码中把它当成了一个序列来进行后续的计算

  9. 【Python】使用cmd模块构造一个带有后台线程的交互命令行界面

    最近写一些测试工具,实在懒得搞GUI,然后意识到python有一个自带模块叫cmd,用了用发现简直是救星. 1. 基本用法 cmd模块很容易学到,基本的用法比较简单,继承模块下的Cmd类,添加需要的功 ...

随机推荐

  1. Django入门-通用视图

    文档:https://docs.djangoproject.com/en/1.11/topics/class-based-views/ from django.shortcuts import get ...

  2. 24时区,GMT,UTC,DST,CST时间详解

    全球24个时区的划分      相较于两地时间表,可以显示世界各时区时间和地名的世界时区表(World Time),就显得精密与复杂多了,通常世界时区表的表盘上会标示着全球24个时区的城市名称,但究竟 ...

  3. xx-net连接教程

    第一步:安装xx-net 在github上下载xx-net,网址 解压后点击运行start.bat文件,此时会提醒是不信任的文件,此时在系统偏好设置里的安全性与隐私去设置让它能打开. 第二步:安装Sw ...

  4. 【learning】[待完善]关于辛普森公式的一点想法

    [吐槽] 嗯一开始接触到这个东西其实是因为某道凸包的题目好像可以用这个奇妙的方法来算 但其实了解也不是很深,只是觉得这个东西十分有意思, 所以先稍微写一下自己的想法,了解更多之后慢慢完善 [正题] 首 ...

  5. ssm实现分页查询

    ssm整合实现分页查询 一.通过limit查询语句实现分页,并展示 1.mapper.xml配置 <select id="selectUsersByPage" paramet ...

  6. body里面的onload和window.onload的区别

    区别:body里面的onload是在“页面加载完成后执行的动作” window里面的onload是在“页面加载时执行的动作” 例子:在html页面中有一个大图片,想要在图片显示出来后提示一个消息框“图 ...

  7. 13.MySQL(一)

    数据库简介 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库 RDBMS 即关系数据库管理系统(Relational Database Management System) 1.特 ...

  8. 直播-rtmp学习

    RTMP(实时消息传输协议),官方介绍如下: Adobe’s Real Time Messaging Protocol (RTMP), an application-level protocol de ...

  9. WCF服务寄宿到IIS

    一.WCF简介: Windows Communication Foundation(WCF)是由微软开发的一系列支持数据通信的应用程序框架,可以翻译为Windows 通讯开发平台.整合了原有的wind ...

  10. GitHub起步---创建第一个项目

    ---恢复内容开始--- 刚起步学习GitHub,边学边说! {参考教程:http://blog.csdn.net/steven6977/article/details/10567719}这里描述的很 ...