regular expresion由一系列特定字符及其组合成的字符串,用来对目标字符串进行过滤操作。。

re相关知识点

python正则表达式库为re,用import re导入,在然后用re.compile(pattern,flag)将正则表达式字符串编译成正则表达式对象。在利用re提供的内置函数对字符串进行匹配,搜索,替换,切分和分组等操作。

flag常用的取值:
re.I 忽略大小写,re.X 忽略空格

import re
def check(string):
p=re.compile("^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$",re.I)
if p.match(string):
print("%s符合规则"%string)
else:
print("%s不符合规则"%string) st1='dflx@163.com'
st2='123456@qq.com'
check(st1)
check(st2)
dflx@163.com符合规则
123456@qq.com符合规则

re.match()从起始位置匹配
re.search()搜索整个字符串匹配,搜索成功返回起始位置和终止位置。
re.findall()以列表形式返回全部匹配的子串

>>> print(p.match('dAA00'))
None
>>> re.match('adf','sdadfg')
>>> re.search('adf','sdadfgadf')
<_sre.SRE_Match object; span=(2, 5), match='adf'>
>>> re.findall('adf','sdadfgadf')
['adf', 'adf']

切分
在实际应用中,不同数据源用不同的分隔符,可能是空格,制表符号,逗号等等。 利用正则表达式和split()函数,可以方便的分开。
re.split(pattern,string[,maxsplit])

.分隔开

>>> st='https:\\www.baidu.com'
>>> lt=re.split('\.',st)
>>> lt
['https:\\www', 'baidu', 'com']

逗号和空格分隔。

>>> st='df lx 23,77'
>>> li=re.split('[\s\,]',st)
>>> li
['df', 'lx', '23', '77']

替换,利用re库中sub()和subn()函数,可以将正则表达式所匹配的内容换成指定的字符串。
sub()返回的是替换后的字符串
subn()是以元组类型还回新字符串和替换的次数。

关键字和谐,re写的还是有点问题

下载简书交友专题的妹子图片.

我已经正则表达式,匹配了10篇文章,但是有些没有图片,有些
图片标签匹配不对,有时间在修改了. 准备遍历整过专题,下载所有图片,嘻嘻,还要判断性别,找出老乡.

import urllib.request
import urllib.parse
import re
import os def get_road(url0):
req=urllib.request.Request(url0)
req.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 '
'(KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36')
response=urllib.request.urlopen(req)
html=response.read().decode("utf-8")
pattern=re.compile(r'<a class="title" target="_blank" href="(.*?)"')
result=re.findall(pattern,html)
return result def get_jiaoyou_url(result,s0):
s=s0
return geturl(result,s) def gethtml(ur):
url=ur
req=urllib.request.Request(url)
req.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 '
'(KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36')
response=urllib.request.urlopen(req)
html=response.read().decode("utf-8")
return html def getpath(html):
#reg=r'.*?\.png'
reg=r'<img data-original-src="(.*?\.png)"'
imgre=re.compile(reg)
urls=imgre.findall(html)
return urls def geturl(url,s):
urls=[s+str(i) for i in url]
for i in range(len(urls)):
print(urls[i])
print("url_length=",len(urls))
return urls def download(urls):
x=10
print("length=",len(urls))
for url in urls:
filename='/home/dflx/下载/jiaoyou_photo/'+str(x)+'.png'
urllib.request.urlretrieve(url,filename)
x+=1
print(x) def download_all(urls):
print(len(urls))
print('---------------')
index=0
while index<len(urls):
print(urls[index])
#download(urls[index])
index+=1
print("********") def main():
url0="https://www.jianshu.com/c/bd38bd199ec6"
#ur='https://www.jianshu.com/p/407dac18983c'
ur='https://www.jianshu.com/p/189d1b8101e6'
html=gethtml(ur)
path=getpath(html)
urls=geturl(path,'https:')
download(urls) """
result=get_road(url0)
allurls=get_jiaoyou_url(result,'https://www.jianshu.com')
download_all(allurls) """

下载的图片叉车图片

python正则表达式,以及应用[下载图片]的更多相关文章

  1. [python]非常小的下载图片脚本(非通用)

    说在最前面:这不是一个十分通用的下载图片脚本,只是根据我的一个小问题,为了减少我的重复性工作写的脚本. 问题 起因:我的这篇博文什么是真正的程序员浏览量超过了4000+. 问题来了:里面的图片我都是用 ...

  2. Python学习---网页爬虫[下载图片]

    爬虫学习--下载图片 1.主要用到了urllib和re库 2.利用urllib.urlopen()函数获得页面源代码 3.利用正则匹配图片类型,当然正则越准确,下载的越多 4.利用urllib.url ...

  3. python 协程并发下载图片

    1 import aiohttp 2 import asyncio 3 import time 4 5 async def dl_coroutine(session,url): 6 print('开始 ...

  4. python实现通过URL下载图片到本地服务器

    import os import urllib.request image_url = 'http://img.jingtuitui.com/759fa20190115144450401.jpg' f ...

  5. Python使用requests模块下载图片

    MySQL中事先保存好爬取到的图片链接地址. 然后使用多线程把图片下载到本地. # coding: utf-8 import MySQLdb import requests import os imp ...

  6. 利用Python实现从百度下载图片到本地磁盘

    import urllib.request import os import re url=r'http://image.baidu.com/search/index?tn=baiduimage&am ...

  7. python使用md5处理下载图片

    import urllib2 import hashlib opener = urllib2.build_opener() req = opener.open("http://avatar. ...

  8. 使用Requests+正则表达式爬取猫眼TOP100电影并保存到文件或MongoDB,并下载图片

    需要着重学习的地方:(1)爬取分页数据时,url链接的构建(2)保存json格式数据到文件,中文显示问题(3)线程池的使用(4)正则表达式的写法(5)根据图片url链接下载图片并保存(6)MongoD ...

  9. 从url下载图片--java与python实现方式比较

    从url下载图片--java与python实现方式比较 博客分类: 技术笔记小点滴 javapython图片下载  一.java的实现方式 首先读取图片 //方式一:直接根据url读取图片 priva ...

随机推荐

  1. 理解JavaScript继承(一)

    理解JavaScript继承(一) 我们都知道,面向对象的编程语言非常强大,之所以强大,就是其支持继承.在JavaScript中,也支持继承,而且有多种方法实现继承,比如原型链继承,借用构造函数继承, ...

  2. leetcode 141. Linked List Cycle 、 142. Linked List Cycle II

    判断链表有环,环的入口结点,环的长度 1.判断有环: 快慢指针,一个移动一次,一个移动两次 2.环的入口结点: 相遇的结点不一定是入口节点,所以y表示入口节点到相遇节点的距离 n是环的个数 w + n ...

  3. 20165302 敏捷开发与XP实践作业

    20165302 敏捷开发与XP实践实验报告 一.提交点一 1.实验要求 参考 http://www.cnblogs.com/rocedu/p/6371315.html#SECCODESTANDARD ...

  4. ZooKeeper(一)基本介绍

    本文转载自LDB's Blog,原文链接 ZooKeeper原理及其在Hadoop和HBase中的应用 目录 一.简介 二.基本概念 1. 集群角色 2. 会话(Session) 3. 数据节点(ZN ...

  5. P1719 最大加权矩形

    题目描述 为了更好的备战NOIP2013,电脑组的几个女孩子LYQ,ZSC,ZHQ认为,我们不光需要机房,我们还需要运动,于是就决定找校长申请一块电脑组的课余运动场地,听说她们都是电脑组的高手,校长没 ...

  6. zdump 命令查看时区和夏令时

    zdump -v 时区名称1. 查看中国PRC时区的2007年的时区规则# zdump -v PRC | grep 2009PRC Mon Sep 17 06:03:55 2007 UTC = Mon ...

  7. 【nodeJs】nodejs

    node.js

  8. GitHub 源码,Framework 框架

    https://github.com/CoderLN/Apple-GitHub-Codeidea Apple 译文.GitHub 源码,随原作者 (大版本) 迭代注解.--- 不知名开发者 https ...

  9. centos配置静态ip地址

    1.输入以下命令: vim /etc/sysconfig/network-scripts/ifcfg-eth0 2.注释掉BOOTPROTO=dhcp 3.添加如下内容: ONBOOT=yes 表示开 ...

  10. Linux中定时删除超过指定大小的文件夹

    背景: 开发环境总是动不动就没有空间了, 大部分都是debug日志.所以有必要在日志很疯狂的时候,删除不必要的日志. 思路:一. 书写删除日志文件脚本: 定时任务执行.  但是有时候的日志是需要保存用 ...