Python requests模块爬取妹子图

本文介绍了一种使用Python爬虫技术抓取特定网站上的图片集合的方法。通过发送HTTP请求并解析HTML页面来获取每一套图集的所有图片链接,然后下载并保存这些图片。文章详细展示了如何设置请求头以绕过防盗链机制,并使用正则表达式进行数据提取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import requests
import os
import re

#获取网页信息
def url_open(url):
  #添加头部信息记得加上 Referer,不然图片地址会变成防盗链接
  headers = {'User-Agent':
             'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0'
             ,"Referer":"http://www.mzitu.com/"}
    
  response = requests.get(url, headers=headers)
  return response

#得到所有网址套图的地址
def get_page(url):
  phtml = url_open(url).text
  #print(phtml)
#正则匹配套图地址
  page_p = r'<a href="([^"]+\d+)" target="_blank">'
  page_addrs = []
  #for 循环去除正则匹配的重复图片套图地址有
  for i in re.findall(page_p,phtml):
    if i in page_addrs:
      continue
    else:
      page_addrs.append(i)
  return page_addrs
  #print(page_addrs)
 
#把每个网页套图里的所有图片下载保存到文件夹中
def get_img(url):
  os.mkdir("MeiZiTu")
  os.chdir("MeiZiTu")
  
  page_addrs = get_page(url)
  print(page_addrs)
  for  page_url in page_addrs:
    print(page_url)
    img_html1 = url_open(page_url).text
    #print(ihtml)
    #正则匹配套图页数
    p = r'<span>(\d+)</span>'
    p_url = re.findall(p,img_html1)
    #print(p_u)
    #取套图的最大页数
    x = int(p_url[-1])
    #print(x)
    
    for i in range(1,x+1):
      img_url = page_url + "/" + str(i)
      #print(img_url)
      img_html2 = url_open(img_url).text
      #print(img_html2)
      #匹配图片地址
      img_p = r'<img src="([^"]+\.jpg)"'
      img_addrs =  re.findall(img_p,img_html2)
      
      for each in img_addrs:
        #print(each)
        file = each.split("/")[-1]
        with open(file, "wb") as f:
          img = url_open(each).content
          f.write(img)
      

if __name__ == "__main__":
  url = 'http://www.mzitu.com/'
  get_img(url)


结果


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值