利用Python爬取美女网站图片

scadm 2021年4月25日00:18:43
评论
497 1656字

最近在学习Python爬虫,拿了个美女网站做了实验。

脚本源码如下:(图片会存在相对应的图集编号的文件夹下)

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Date : 2017-05-12
# @Author : yangfannie
# @name : PicDownload.py
# @Link : https://yangfannie.com
#coding:utf-8
import requests
import re
import os
from bs4 import BeautifulSoup
import urllib
url = "http://www.mm131.com/xinggan/"   ##设置python爬取的网站链接
content = urllib.urlopen(url).read()    ##读取网站页面信息
res_tr = r'<dl class="list-left public-box">(.*?)</dl>'   ##使用正则筛出需要内容区间
m_tr = re.findall(res_tr,content,re.S|re.M)
for line in m_tr:
    link_list = re.findall(r"(?<=href="http://www.mm131.com/xinggan/).+?(?=.html)", line)    ##使用正则筛出图集编号
    for pic_id in link_list:
    os.chdir("/opt/pic")   ##设置图片保存目录
    homedir = os.getcwd()
    fulldir = unicode(os.path.join(homedir,pic_id),encoding='utf-8') ##图片保存在指定目录,并根据套图id设置目录
    print fulldir
    if not os.path.isdir(fulldir):
           os.makedirs(fulldir)
    ##通过图集编号获取每个图集下面有多少张图片
    url='http://www.mm131.com/xinggan/%s.html' % pic_id
    html = requests.get(url).text
    soup = BeautifulSoup(html, 'html.parser') #使用soup取关键字,上一行会报错UserWarning: No parser was explicitly specified
    ye = soup.span.string
    ye_count = re.search('d+',ye)
    print('pages:共%d页' % int(ye_count.group()))
    def downpic(pic_id):
        n = 1
        url='http://www.mm131.com/xinggan/%s.html' % pic_id
        while n <= int(ye_count.group()): #翻完停止
        #下载图片
        try:
            if not n == 1:
            url='http://www.mm131.com/xinggan/%s_%s.html' % (pic_id,n) #url随着n的值变化的
            html = requests.get(url).text
            pic_url = re.search(r'img alt=.* src="https://yangfannie.com/(.*?)" /',html,re.S) #使用正则去关键字
            pic_s = pic_url.group(1)
            print(pic_s)
            pic= requests.get(pic_s, timeout=2)
            pic_cun = fulldir + '/' + pic_id + '_' + str(n) + '.jpg'  ##下载图片命名
            fp = open(pic_cun,'wb')
            fp.write(pic.content)
            fp.close()
            n += 1
        except requests.exceptions.ConnectionError:
            print("【错误】当前图片无法下载")
            continue
    if __name__ == '__main__':
        downpic(pic_id)
继续阅读
scadm
  • 本文由 发表于 2021年4月25日00:18:43
  • 转载请务必保留本文链接:https://www.wscyun.com/874
Linux自动备份脚本 运维

Linux自动备份脚本

要求:将/data目录下的所有文件cp到/var/backups目录下,文件以当天的日期命名。例如(/var/backups/data.20151103)。并且判断前一天的目录中的文件与当天的区别,如...
Ubuntu自动修改为本地源脚本 运维

Ubuntu自动修改为本地源脚本

搭建好本地源后,如果要一台台去修改sources.list文件比较麻烦,于是就整理了个脚本,只需要在VM上运行脚本即可更改成本地源。 下面脚本可以自动识别Ubuntu是12.04还是14.04版本,添...
tomcat应用自动部署脚本 运维

tomcat应用自动部署脚本

从远程服务器拷贝项目war包,替换web内容及properties文件 运行命令: xx.sh xxx(项目名称) #!/bin/bash RETVAL=0 workpath=/cache1 proj...
Centos7自动修改网卡名称脚本 运维

Centos7自动修改网卡名称脚本

用过Centos7的同学都会发现上面的网卡命名规则是不规范的,对于习惯了之前的eth或em的命名难免想要修改回去。 最近公司在定制Centos7时就提了这个需求,于是就写了个脚本在安装系统时运行脚本自...