前段时间花了一部分时间学习下正则表达式,总觉得利用正则要做点什么事情,所以想通过爬取页面的方式把一些美女的照片保存下来,其实过程很简单。
1.首先读取页面信息;
2.过滤出来照片的url地址;
3.通过URL地址来保存图片;
#-*-coding:utf-8 -*- ‘‘‘爬取评论区的美女照片‘‘‘ import requests import re RE_PICTURE_NAME = re.compile(r‘(\w)+\.[A-Za-z]+$‘) RE_URL = re.compile(r‘(\w)+\.(\w)+\.(\w)+/(\w)+\/(\w){2,}\/(\w)+.jpg‘) request_top_list = requests.get(‘https://mm.taobao.com/json/request_top_list.htm‘) RESPONSE = request_top_list.text #resp.text返回的是Unicode型的数据 def Get_Reuest_Picture_List(RESPONSE): ‘‘‘抓取页面的所有URL‘‘‘ URLS = [] for match in RE_URL.finditer(RESPONSE): #所有与pattern相匹配的全部字串,以迭代器的形式返回 与findall的区别,findall在字符串中找到正则表达式所匹配的所有子串,并组成一个列表返回 URL = match.group() URLS.append(‘http://‘+URL) return URLS def Download_Url_Picture(URL): ‘‘‘下载图片‘‘‘ REQUEST_CONTENT = requests.get(URL).content #resp.content返回的是bytes型也就是二进制的数据 PICTURE_NAME = RE_PICTURE_NAME.search(URL).group(0) #根据url获取图片名字 FILE_OBJECT = open(str(PICTURE_NAME),‘wb‘) #以二进制的方式写文件 FILE_OBJECT.write(‘picture\\‘+REQUEST_CONTENT) FILE_OBJECT.close() def Save_All_Picture(URLS): ‘‘‘保存所有请求中的图片‘‘‘ for URL in URLS: Download_Url_Picture(URL) if __name__ == ‘__main__‘: URLS = Get_Reuest_Picture_List(RESPONSE) Save_All_Picture(URLS)
时间: 2024-10-18 23:22:15