Python猪突篇补充

感觉上一篇的内容还是差了一点,就是那么一点看得见摸不着的感觉,所以有了这一片新作,尝试爬点网络图片吧。

准备工作

选一个图片网站,我找了一个妹子图的网站 https://www.vmgirls.com,不喜欢妹子喜欢汉子的也可以随自己喜好找汉子图的网站。

就在首页里随意点进一组图片里,跳转到对应的组图网页。那么目标和目标网页都有了。

我们需要对网页内容进行分析,找出我们需要的内容,以我们的目标网页为例,需要给这组图片一个组图名,需要妹子的名字,需要妹子的图,三样全都要。那么开始撸代码:

import time
import requests
import re
import os

# 组图网页的网址 url
= 'https://www.vmgirls.com/16901.html' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.79 Safari/537.36' } response = requests.get(url, headers=headers) html = response.text # print(html) # 采用正则表达式抓取特定的数据 patternFileName = '<h1 class="post-title h1">(.*)</h1>' patternActorName = '<div class=nc-light-gallery>.*<a target=_blank href=.* title=.*>(.*)</a><br/>' patternActorPicTopBackground = '<div class=media-content style="background-image:url\\(\'//(.*)\'\\)"></div>' patternPics = '<a href="//(.*)" alt=.* title=.*>' fileName = re.findall(patternFileName, html) actorName = re.findall(patternActorName, html) actorPicTop = re.findall(patternActorPicTopBackground, html) picUrls = re.findall(patternPics, html) picUrls.insert(0, actorPicTop[0]) # print(fileName) # print(actorName) # print(actorPicTop) # print(picUrls) dirName = 'D:/pic/girls' + "/" + fileName[0] + "_" + actorName[0] if not os.path.exists(dirName): os.mkdir(dirName) for url in picUrls: time.sleep(.5) file_name = url.split('/')[-1] response = requests.get('http://' + url, headers=headers) with open(dirName + "/" + file_name, 'wb') as fp: fp.write(response.content)

上结果图:

当然不出所料,图片下载成功。

以上代码内容进行下分析说明。

首先,我们代码里引入了4个库time,requests,re和os。time在代码出现了一次,作用是延时0.5秒;requests理所当然是做网络请求用的;re是用于在字符串中查找正则匹配字符串用的;os则是和文件写入相关。

整段代码的逻辑是:取到网页的内容 -> 从页面内容中抓取需要的文字,从内容中抓取图片的链接 -> 创建文件目录 -> 下载图片到电脑上。比较难的是分析页面内容,查找需要抓取的内容和正则匹配获取内容。如果是本来就搞过网页制作的工作的小伙伴,前面这句话就当我没说过。正则表达式的觉得难理解,这里推荐一个网站 https://www.runoob.com/regexp/regexp-syntax.html

以上,就不再爬取大量图片了,看多了这种图也太痛苦了,暂时完结了吧

 

PS:吾将上下而求索

posted @ 2021-07-09 15:45  swalka`x  阅读(47)  评论(0编辑  收藏  举报