大致步骤:

第一步:找到我们要爬取的网站 https://www.vmgirls.com/这是个妹子图片的私人网站

第二步:打开Vscode或者Pycharm都可以 复制我的代码,详细的解释写好了

ps:requests库需要手动下载,按win+R输入cmd进入命令行模式,输入pip install
requests安装requests库。

第一部分,请求网页。

# 导入requests库
import requests

# 导入re正则表达式库
import re

# 导入系统内置库
import os

headers = {
'user-agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'
}

# 用request.get方法访问网址得到网页HTML内容
response = requests.get('https://www.vmgirls.com/12985.html', headers = headers)

#网页内容以文本形式打印出来
html = response.text

设置标题headers防止反爬,标题这样设置的原因是因为我们要模仿我们真的是从这个网页下载图片而不是通过python来获取图片,所以用网站的标题就行了。
查看网站的标题: 在网页中按F12,在菜单栏中选择network可以看到网页的headers,复制粘贴就可以得到原headers了!

第二部分,获取网页内容

#为文件夹起名字用图片的名字命名。
dir_name = re.findall('<h1 class="post-title h3">(.*?)</h1>', html)[-1]

# 如果文件夹不存在那么就建立文件夹,不然就不建立
if not os.path.exists(dir_name):
os.mkdir(dir_name)

# 获取图片地址
urls = re.findall('<a href="(.*?)" alt=".*?" title=".*?">', html)

# 打印获得的urls
print(urls)

第三部分,保存图片

# 通过for循环来遍历筛选过的urls,然后分别下载保存!
for url in urls:
file_name = url.split('/')[-1]
response = requests.get(url, headers = headers)
with open(dir_name + '/' + file_name, 'wb') as f:
f.write(response.content)

以上是详细教程
完成啦!!!!!!!!!!!!!!

完整代码:

# 导入requests库
import requests

# 导入re正则表达式库
import re

# 导入系统内置库
import os

headers = {
'user-agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'
}

# 用request.get方法访问网址得到网页HTML内容
response = requests.get('https://www.vmgirls.com/12985.html', headers = headers)

#网页内容以文本形式打印出来
html = response.text



#为文件夹起名字用图片的名字命名。
dir_name = re.findall('<h1 class="post-title h3">(.*?)</h1>', html)[-1]

# 如果文件夹不存在那么就建立文件夹,不然就不建立
if not os.path.exists(dir_name):
os.mkdir(dir_name)

# 获取图片地址
urls = re.findall('<a href="(.*?)" alt=".*?" title=".*?">', html)

# 打印获得的urls
print(urls)



# 通过for循环来遍历筛选过的urls,然后分别下载保存!
for url in urls:
file_name = url.split('/')[-1]
response = requests.get(url, headers = headers)
with open(dir_name + '/' + file_name, 'wb') as f:
f.write(response.content)