引言

  • 今天继续是python每日一练的几个专题,主要涵盖简单的敏感词识别以及图片爬虫

敏感词识别

  • 这个敏感词的识别写的感觉比较简单,总的概括之后感觉功能可以简略成if filter_words in xxx,即一个简单的匹配
  • 不过这次练习又学到一句比较好的语句,之前我构造类似敏感此种这种列表时,通常的操作都是先将文本复制进notepad++,然后手动修饰成符合的列表样式

    但现在我们可以这样做,就能简单的完成这个操作了。
with open('C:/Users/xxx/Desktop/filter_words.txt','r',encoding='utf-8') as f:
filter_words = [line.rstrip() for line in f] #处理那些一行就只有一个数据的文件时,就可以这样将每一行右侧空白符删除后写入列表
  • 这次练习代码示例:
# -*- coding:utf-8 -*-
# Author:Konmu
# 第 0011 题: 敏感词文本文件 filtered_words.txt,里面的内容为以下内容,
# 当用户输入敏感词语时,则打印出 Freedom,否则打印出 Human Rights。
# 第 0012 题: 敏感词文本文件 filtered_words.txt,里面的内容 和 0011题一样,
#当用户输入敏感词语,则用 星号 * 替换,
# 例如当用户输入「北京是个好城市」,则变成「**是个好城市」。 with open('C:/Users/xxx/Desktop/filter_words.txt','r',encoding='utf-8') as f:
filter_words = [line.rstrip() for line in f] def client_Input():
input_word = input("please input what you want to say:")
for i in filter_words:
if i in input_word:
print("Freedom")
new_word = input_word.replace(i,'*'*len(i))
return(new_word)
return('Human Rights') if __name__ == "__main__":
print(client_Input())
  • 最终效果

图片爬虫

  • 这个练习可以说是宅男福利了,手动滑稽(/ω\)
  • 先看一下最终效果

  • 不得不说,好久不写图片类型的爬虫了,这次练习才发现有好多地方又忘了,看来还是要多加练习
  • 思路分析:大体的流程就是爬虫常规写法了,先将整个网站的源码下载下来,然后在匹配图片链接,最后下载即可
  • 代码示例如下:
# -*- coding:utf-8 -*-
# Author:Konmu
# 用 Python 写一个爬图片的程序,爬 这个链接里的日本妹子图片 :-) import requests
import re url='https://tieba.baidu.com/p/2166231880?red_tag=0872956249'
session=requests.session()
#context=ssl._create_unverified_context()
html=session.get(url).content.decode('utf-8') pattern=r'<img pic_type="0" class="BDE_Image" src=(.*?) .*?>' img_url=re.findall(pattern,html)
#print(img_url)
x=0 for i in img_url:
i=i.replace('"','')
photo = requests.get(i)
with open('D:/py_tu/output{}.jpg'.format(x),'ab') as f:
f.write(photo.content)
x+=1
print("图片开始下载,注意查看文件夹")
  • 注:一开始我是想用urllib.requesturlretrieve()来下载图片的,但是发现urllib无法处理https,而且编译安装python之前没有编译安装类似于openssl这样的SSL库,所以导致python不支持SSL,网上大多是针对Linux的解决方法,对于windows我尝试按照使用pythonssl库但是也没能解决,遂选择了直接保存文件,即上述代码中示例

Python 每日一练(4)的更多相关文章

  1. python每日一练:0007题

    第 0007 题: 有个目录,里面是你自己写过的程序,统计一下你写过多少行代码.包括空行和注释,但是要分别列出来. # -*- coding:utf-8 -*- import os def count ...

  2. [python每日一练]--0012:敏感词过滤 type2

    题目链接:https://github.com/Show-Me-the-Code/show-me-the-code代码github链接:https://github.com/wjsaya/python ...

  3. Python 每日一练 | Flask 实现半成品留言板

    留言板Flask实现 引言 看了几天网上的代码,终于写出来一个半成品的Flask的留言板项目,为什么说是半成品呢?因为没能实现留言板那种及时评论刷新的效果,可能还是在重定向上有问题 或者渲染写的存在问 ...

  4. Python 每日一练(5)

    引言 Python每日一练又开始啦,今天的专题和Excel有关,主要是实现将txt文本中数据写入到Excel中,说来也巧,今天刚好学校要更新各团支部的人员信息,就借此直接把事情做了 主要对于三种数据类 ...

  5. Python 每日一练(3)

    引言 今天的每日一练,学习了一下用Python生成四位的图像验证码,就是我们常常在登录时见到的那种(#`O′) 思路分析 正如常见的那种图像验证码,它是由数字和字母的随机组合产生的,所以我们首先的第一 ...

  6. Python每日一练(1)

    这两天在做Python的每日一练,感觉收获颇丰,所以来记录分享一下,一共做了三个,涉及socket,PIL,pymysql三个库,另外终于开始了Flask框架的学习,后续也会做出一些分析 第一个是一个 ...

  7. Python 每日一练(2)

    引言 我又双叒叕的来啦,新博客的第二篇文章,这次是继之前公众号上每日一练的第二个,这次是专题实对于文件的一些处理的练习 主要有以下几类: 1.实现英文文章字频统计 2.统一剪裁某一指定目录下的所有图片 ...

  8. Python每日一练(1):计算文件夹内各个文章中出现次数最多的单词

    #coding:utf-8 import os,re path = 'test' files = os.listdir(path) def count_word(words): dic = {} ma ...

  9. Python 每日一练(7)

    引言 今天的练习比较轻松,原本是有两题的,但是第一题那个大致看了一下,其实和之前的6个练习差不多,就是把xls中的文件数据读取出来后,进行一下处理,对于那题而言就是一个求和操作,所以就没练了,所以今天 ...

随机推荐

  1. HBase Filter 过滤器之RowFilter详解

    前言:本文详细介绍了HBase RowFilter过滤器Java&Shell API的使用,并贴出了相关示例代码以供参考.RowFilter 基于行键进行过滤,在工作中涉及到需要通过HBase ...

  2. 清北学堂—2020.3NOIP数学精讲营—Day 1 morning 重点笔记

    qbxt Day 1 morning 重点笔记 --2020.3.8 济南 主讲:钟皓曦 1 正数%负数==正数 负数%正数==负数 负数%负数==负数 a%b的答案的符号取决于a的符号. 2 快速幂 ...

  3. 如何使用Golang实现一个API网关

    你是否也存在过这样的需求,想要公开一个接口到网络上.但是还得加点权限,否则被人乱调用就不好了.这个权限验证的过程,最好越简单越好,可能只是对比两个字符串相等就够了.一般情况下我们遇到这种需要,就是在函 ...

  4. 这是一篇每个人都能读懂的最小生成树文章(Kruskal)

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是算法和数据结构专题的第19篇文章,我们一起来看看最小生成树. 我们先不讲算法的原理,也不讲一些七七八八的概念,因为对于初学者来说,看到 ...

  5. 从零开始学习docker之在docker中搭建redis(集群)

    docker搭建redis集群 docker-compose是以多容器的方式启动,非常适合用来启动集群 一.环境准备 云环境:CentOS 7.6 64位 二.安装docker-compose #需要 ...

  6. LeetCode--Array--Remove Duplicates from Sorted Array (Easy)

    26. Remove Duplicates from Sorted Array (Easy) Given a sorted array nums, remove the duplicates in-p ...

  7. NEON中的vshr vshl vext中的位移参数必须为编译时字面常量

    NEON中的vshr指令中位移数量参数必须为compile time literal constant,因为该参数是被encoded as part pf ARM instruction itself ...

  8. 【Hadoop离线基础总结】oozie调度hive

    目录 1.拷贝hive的案例模板 2.编辑hive模板 3.上传工作文件到hdfs 4.执行oozie的调度 5.查看调度结果 1.拷贝hive的案例模板 cd /export/servers/ooz ...

  9. linux输入输出、重定向、管道

    本篇讲述linux系统的输入输出.管道和重定向. 1. liunx的输入输出 一个linux系统要想发挥作用,就要有输入输出,这样才可以与外界交互. 类型 设备文件名 文件描述符 设备名称 说明 备注 ...

  10. 数据库-第八章 数据库编程-8.1 嵌入式SQL

    嵌入式SQL 一.嵌入式SQL的处理过程 1.嵌入式SQL语句的基本格式 2.嵌入式SQL的处理过程 3.主语言访问数据库的基本步骤 ⅰ建立数据库连接 ⅱ定义必要的主变量和数据通信区 ⅲ访问数据库并返 ...