鱼C论坛

 找回密码
 立即注册
查看: 1684|回复: 0

[技术交流] 第一次写的爬MM图片,请指教

[复制链接]
发表于 2020-8-25 22:52:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
学python有一段时间了,看到论坛很多人写的爬mm图,今天心血来潮,自己练练手,请指教:
爬取的网页为:https://www.mzitu.com/zipai/

import requests
import re
import os.path
import time

def get_one_page(url):#单个网页的html
    headers = {
        'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:79.0) Gecko/20100101 Firefox/79.0'
        }
    r = requests.get(url,headers = headers)
    if r.status_code == 200:
        print('获取成功...')
        os.chdir(r'C:\Users\Administrator\Desktop')   
        return r.text
        

def parse_one_page(content):#对网页html进行分析,获取图片的地址李彪
    patterns = re.compile(r'<p>.*?class="lazy".*?original="(.*?)".*?</p>',re.S)  
    items = re.findall(patterns,content)
    return items

def write_to_file(download_url_list):#下载图片
    headers = {
        'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:79.0) Gecko/20100101 Firefox/79.0'
        }
    os.chdir(r'C:\Users\Administrator\Desktop')
    if os.path.exists(r'C:\Users\Administrator\Desktop\mzt'):
        os.chdir(r'C:\Users\Administrator\Desktop\mzt')
    else:
        os.mkdir('mzt')
        os.chdir(r'C:\Users\Administrator\Desktop\mzt')
    for each in download_url_list:
        r= requests.get(each,headers = headers)
        filename = each[-10:-4]+'.png'
        with open(filename,'wb') as f:
            f.write(r.content)
def main(url):
    html = get_one_page(url)
    download_url_list = parse_one_page(html)
    write_to_file(download_url_list)

if __name__ == '__main__':
    base_url = 'https://www.mzitu.com/zipai/'
    for each in range(1,400):
        url = base_url +'comment-page-'+str(each)+'/#comments'
        main(url)
        time.sleep(2)
   
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-19 03:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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