字符串;从字符串中截取图片链接

字符串中的函数

# coding:utf-8
# 字符串中的函数
string = 'abcdddefg'

# 1.取出字符串中的每一个字符
s = string[2]
print s
# 遍历取出所有字符
# for s in string:
#     print s

# 2.字符串切片,包含开始位置,不包含结束位置
s = string[3:6]
print s
# 从第0个字符开始截取,之后第N个字符
s = string[:6]
print s
# 从第n个字符开始截取,直到最后一个字符
s = string[2:]
print s
# 列表也是可以切片的
list_1 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
l = list_1[4:]
print l

# 3.find()查找某个字符出现的位置,找到返回对应的位置,找不到则返回-1
# start 开始查找的位置,end结束查找的位置
index = string.find('e',5,10)
print index

# 4.count()统计某个字符出现的次数
count = string.count('d')
print count

# 5.split() 分割字符串
s2 = 'zhangsan,110,23'
# maxsplit 指定最大的分割次数
result = s2.split(',',2)
print result

# 6. 把列表中的字符串,拼接为一个完整的字符串
s3 = ';'.join(result)
print s3

# 7 startswith() 判断字符串是否以某个字符串开头,是返回True,不是返回False
rs = string.startswith('acb');
print rs

# 8. endswith()
rs = string.endswith('k1')
print rs

用find函数,从字符串中截取图片链接

#coding:utf-8
string = '<cc><div id="post_content_115101375872" class="d_post_content j_d_post_content ">秋高气爽<br><img class="BDE_Image" src="https://imgsa.baidu.com/forum/w%3D580/sign=16a7318cd2f9d72a17641015e42b282a/353680cb39dbb6fd5e8db0950224ab18952b379e.jpg" size="65387" changedsize="true" width="560" height="420" size="65387"><br><img class="BDE_Image" src="https://imgsa.baidu.com/forum/w%3D580/sign=80df3901b9b7d0a27bc90495fbee760d/1ddd0b55b319ebc49aae232a8926cffc1c17169e.jpg" size="50323" changedsize="true" width="560" height="420" size="50323"><br><img class="BDE_Image" src="https://imgsa.baidu.com/forum/w%3D580/sign=078b542b55df8db1bc2e7c6c3922dddb/33c010dfa9ec8a1338cc0253fc03918fa2ecc09f.jpg" size="78770" changedsize="true" width="560" height="373" size="78770"><br><img class="BDE_Image" src="https://imgsa.baidu.com/forum/w%3D580/sign=f4602793b212c8fcb4f3f6c5cc0292b4/b0c62934349b033bdd5ea9691ece36d3d739bd9f.jpg" size="95035" changedsize="true" width="560" height="373" size="95035"><br><img class="BDE_Image" src="https://imgsa.baidu.com/forum/w%3D580/sign=1f8f63cc73f0f736d8fe4c093a54b382/300b37d12f2eb9382fbb2f41de628535e7dd6f9f.jpg" size="100285" changedsize="true" width="560" height="373" size="100285"><br><img class="BDE_Image" src="https://imgsa.baidu.com/forum/w%3D580/sign=cf96d68331f33a879e6d0012f65d1018/6b5f0e2442a7d933d23ab1c0a64bd11371f001da.jpg" size="65247" changedsize="true" width="560" height="420" size="65247"><br><img class="BDE_Image" src="https://imgsa.baidu.com/forum/w%3D580/sign=dfff2f41de62853592e0d229a0ee76f2/4a9f8ad4b31c8701e524e7552c7f9e2f0508ffdb.jpg" size="79750" changedsize="true" width="560" height="414" size="79750"><br><img class="BDE_Image" src="https://imgsa.baidu.com/forum/w%3D580/sign=b4a6d35d9782d158bb8259b9b00b19d5/35d1279759ee3d6d3054d27848166d224d4adedb.jpg" size="103175" changedsize="true" width="560" height="414" size="103175"></div><br></cc>'
# 定义开始和结束需要查找的字符
start_str = 'img class="BDE_Image" src="'
end_str = '.jpg'
# 查找开始位置和结束位置
start = string.find(start_str)
print start
end = string.find(end_str)
print end
# 截取字符串
# 截取字符串 start是<尖括号的位置,需要加上start_str的长度得到的才是http中h的位置
# end.jpg.的位置,需要加上end_str的长度才是完整的图片的链接
rs = string[start+len(start_str):end+len(end_str)]
print rs

# 查找第二个图片的src 应该是从第一个.jpg之后进行查找
start = string.find(start_str,end+len(end_str),len(string))
# 查找第二个.jpg的位置,应该从第二个<img的位置开始查找
end = string.find(end_str,start, len(string))
# 截取第二个src的值
rs1 = string[start+len(start_str):end+len(end_str)]
print rs1

改写成循环形式

#coding:utf-8
import urllib
string = ''
# 定义开始和结束需要查找的字符
start_str = 'img class="BDE_Image" src="'
end_str = '.jpg'
# 查找开始位置
start = string.find(start_str)
while start!=-1:
    end = string.find(end_str,start,len(string))
    href = string[start + len(start_str):end + len(end_str)]
    # 分割url地址 获取图片的名称
    href_list = href.split('/')
    pic_name = href_list[-1]
    print pic_name
    # urlretrieve(url,filename) 方法直接将远程数据下载到本地。
    urllib.urlretrieve(href, pic_name)
    start = string.find(start_str, end + len(end_str), len(string))
发布了19 篇原创文章 · 获赞 6 · 访问量 6195

猜你喜欢

转载自blog.csdn.net/weixin_41580211/article/details/79075880
今日推荐