吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 13996|回复: 73
收起左侧

[Python 转载] 爬取唯美女生网站上所有小姐姐的照片

  [复制链接]
创造太阳 发表于 2020-2-17 13:41
本帖最后由 创造太阳 于 2020-2-19 14:04 编辑

最近刚好在整理一些爬虫资料,今天分享一个之前写的爬取图片的代码,主要利用requests库和re库来实现图片的提取和清洗。
首先,通过requests库的get函数访问该页面获得所有文章链接。
然后,用re库来提取网址
最后,通过依次访问图片网址来进行下载保存
具体代码如下:
[Python] 纯文本查看 复制代码
"""导入模块"""
import requests  # 导入requests库
import re  # 导入正则表达式库
import os  # 导入操作系统库
import time  # 导入时间库
print("爬虫程序正在执行中,因设置有延时,故页面显示有些迟缓……")
def dir_save():
    dir_name = re.findall('<h1 class="post-title h3">(.*?)</h1>', html)[-1]  # 正则表达式创建目录名字
    if not os.path.exists(dir_name):  # 判断文件夹是否存在,如果不存在:
        os.mkdir(dir_name)  # 创建一个文件夹
    with open(dir_name + '/' + file_name, 'wb') as f:  # 用wb模式打开创建文件,w写模式
        f.write(response.content)  # 写入二进制文件内容
user = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36'
}
response = requests.get('https://www.vmgirls.com/sitemap.shtml',headers=user)  # 用requests库的get函数访问总网页,用headers进行伪装,获得所有文章网址
html = response.text  # 用文本显示访问网页得到的内容
urls_wz = re.findall('https://www.vmgirls.com/\d*.html', html)  # 用正则表达式获得文章的所有网址
#print(urls_wz)  # 打印显示所有网址
for url_wz in urls_wz:
    time.sleep(30)  # 设定30秒延时
    print('正在爬取:' + str(url_wz) + "的图片")  # 查看正在执行的网址,以判断是否下载完整
    response = requests.get(url_wz, headers=user)  # 用requests库的get函数访问网页,用headers进行伪装
    #print(response.text)    #打印网页
    html = response.text  # 用文本显示访问网页得到的内容
    urls_tp = re.findall('<a href="(.*?)" alt=".*?" title=".*?">', html)  # 正则表达式获得图片网址
    #print(urls_tp)  # 打印显示文章图片网址
    if len(urls_tp):
        for url_tp in urls_tp:  # 循环获取每一个图片网址
            # 图片的名字
            file_name = url_tp.split('/')[-1]  # 取每个url_tp最后的部分
            time.sleep(10)  # 设定10秒延时
            response = requests.get(url_tp, headers=user)  # 用requeste库的get函数访问图片网址,用headers进行伪装
            print("正在保存图片中……")
            dir_save()
        print("保存第一页图片完毕!!!")
        for i in range(2,100):  #用range()函数分别输出2-99
            url_wz = "".join(url_wz)
            url_dfy = re.findall('(.*?).html',url_wz)
            url_dfy = "".join(url_dfy)
            url_fy = url_dfy + '/page-' + str(i) + '.html'
            #print(url_fy)
            time.sleep(30)  # 设定30秒延时
            response = requests.get(url_fy,headers = user)
            html = response.text
            urls_fy_pic = re.findall('<a href="(.*?)" alt=".*?" title=".*?">', html)
            #print(urls_fy_pic)    #查看图片网址
            if len(urls_fy_pic):
                for url in urls_fy_pic:  # 循环获取每一个图片网址
                    file_name = url.split('/')[-1]  # 取每个url最后的部分
                    time.sleep(5)  # 设定5秒延时
                    response = requests.get(url, headers=user)  # 用requeste库的get函数访问图片网址,用headers进行伪装
                    print("正在保存第%s页的图片……"%str(i))
                    dir_save()
                print("第%s页保存成功"%str(i))
            else:
                print("第%s页面无图片,即将爬取下一篇文章"%str(i))
                break
    else:
        print("原有正则表达式保存不成功的网址是:" + str(url_wz))

免费评分

参与人数 15吾爱币 +10 热心值 +14 收起 理由
LiBenYe + 1 + 1 我很赞同!
wheal + 1 谢谢@Thanks!
jambin99 + 1 + 1 热心回复!
行者悠然 + 1 谢谢@Thanks!
玄玄123 + 1 谢谢@Thanks!
基督山 + 1 + 1 我很赞同!
ke307 + 1 + 1 谢谢@Thanks!
鸿渐之翼 + 1 + 1 thank you
ldsa165 + 1 + 1 谢谢@Thanks!
54048371 + 1 谢谢@Thanks!
枯山烈焰 + 1 + 1 用心讨论,共获提升!
www.52pojie.cn + 1 兄弟,车轮子都压到我脚面了,我流下了屈辱的泪水
泳诗 + 1 我很赞同!
千钰 + 1 + 1 我很赞同!
joneqm + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

风中飘雪 发表于 2020-2-17 21:08
eoven8 发表于 2020-2-17 14:35
学习到了,到时候可以爬取各种各样的网站

看来是老司机
xiaoq999 发表于 2020-2-19 13:57
爬虫程序正在执行中,因设置有延时,故页面显示有些迟缓……
正在爬取:https://www.enterdesk.com/bizhi/50178.html的图片
Traceback (most recent call last):
  File "D:/PycharmProjects/zipo/papapa.py", line 60, in <module>
    print("原有正则表达式保存不成功的网址是:" + str(url))
NameError: name 'url' is not defined

Process finished with exit code 1

我是初学python 小白 直接修改你的源代码的的网址为别的图片网址后报错,
但是你的源代码在pycharm里面系统也有提示,只是运行的时候却是正常的
求大神帮忙解答一下
微信图片_20200219135435.png
yxys001 发表于 2020-2-17 14:11
伴雨而来 发表于 2020-2-17 14:19
支持支持
freedovip 发表于 2020-2-17 14:20
厉害了,楼主辛苦
eoven8 发表于 2020-2-17 14:35
学习到了,到时候可以爬取各种各样的网站
1988 发表于 2020-2-17 15:40
辛苦了,支持一下
rose520rain 发表于 2020-2-17 15:50
学习中,感谢楼主分享。
皇万睡 发表于 2020-2-17 16:41
厉害了这个就
Michael-Fade 发表于 2020-2-17 19:10
哈哈 第一次学爬虫 谢谢楼主提供的思路 学习了
hupoquan 发表于 2020-2-17 19:12
唯美是啥?
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-18 17:18

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表