引言

  • 今天继续是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. CF1328E Tree Queries

    CF1328E Tree Queries 应该还是比较妙的 题意 给你一个树,然后多次询问 每次询问给出一堆节点,问你是否能找到一个从根出发的链,是的对于给出的每个节点,都能找出链上的点,是的他们的距 ...

  2. React Hooks总结

    Hook 前言 什么是Hook 自从 16.8 版本开始,hooks 的出现使得你可以在不编写 class 的情况下使用状态管理以及其它 React 的特性. 那么在 React Hooks 出现之前 ...

  3. 2-JVM内存模型

    内存模型 方法区 JDK1.7 之前包含1.7 将方法区称为 Perm Space 永久代 JDK1.8之后包含1.8 将方法区称为 MetaSpace 元空间. 堆(分配内存会大一些) 分配对象.n ...

  4. Spring Cloud Alibaba系列(一)nacos作为服务注册中心

    Spring Cloud Alibaba各组件版本关系 Spring Cloud Alibaba Version Sentinel Version Nacos Version RocketMQ Ver ...

  5. Java 四种权限修饰符

    Java 四种权限修饰符访问权限 public protected (default) private 同一个类(我自己) yes yes yes yes 同一包(我邻居) yes yes yes n ...

  6. react中redux的理解

    定义 redux可以看作是flux的进阶版,主要用于react中公共状态(数据)的管理 redux底层原理 redux有一个createStore方法,这个方法用户创建公共存储空间,createSto ...

  7. 用Stream流轻易的收集数据

    前言 在日常使用集合时,我们通常使用迭代器来处理集合中的数据,假如有一个用户列表 List,我们想要将用户按照性别分组生成 Map<String, List>.需要遍历 List,然后判断 ...

  8. 第一行Kotlin系列(二)Intent隐式显式跳转及向下传值

    1.Intent显式跳转页面 val button5 = findViewById<Button>(R.id.mButton5) button5.setOnClickListener { ...

  9. YOLOV4在linux下训练自己数据集(亲测成功)

    最近推出了yolo-v4我也准备试着跑跑实验看看效果,看看大神的最新操作 这里不做打标签工作和配置cuda工作,需要的可以分别百度搜索   VOC格式数据集制作,cuda和cudnn配置 我们直接利用 ...

  10. C# 集合ArrayList :可以存储任何类型的数组,的基本用法

    public void main() { //可以存储任何类型的数组 ArrayList alist = new ArrayList(); AddData(alist); RemoveData(ali ...