首页 编程教程正文

Python爬图源码,小虫子真的可以为所欲为!有福利哦!!!

piaodoo 编程教程 2020-02-22 22:11:43 1188 0 python教程

本文来源吾爱破解论坛

本帖最后由 小心boss 于 2019-11-28 23:05 编辑

################################################
前段时间开始自学Python,目前处于新手阶段.
试着写了了个爬虫,分享一下.
有没有也在学Python的,共勉!

################################################
老司机的身份被人拆穿了。。。╮( ̄▽ ̄")╭

之前贴的代码好像有点问题,改了下.感谢各位大佬.
有用的话,请个热心.谢谢--2019 11.28  22:28






[Python] 纯文本查看 复制代码

# -*- coding=utf-8 -*-
'''   
人生苦短,我用Python
'''
###以此怀念###
import time
import requests
import re
import lxml
import os
from bs4 import BeautifulSoup
####################################
url = 'https://www.mzitu.com/all'  # 需要爬取的网页地址
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:70.0) Gecko/20100101 Firefox/70.0',
           'Accept': "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
           'Accept-Encoding': 'gzip',
            "Referer": "https://www.mzitu.com/all"
           }    # 创建头部信息
def get(url):      #发送网络请求
    a= requests.get(url,headers=headers)
    html = a.text
    return html

def main():
    soup = BeautifulSoup(get(url),'lxml')       #解析爬取网址
    all_url = soup.find('div',class_='all').find_all('a') #过滤数据到all_url列表中
    for mulu in all_url:    #遍历url列表
        if mulu.get_text() == '早期图片':
            continue
        else:
            result = {
                'title': mulu.get_text(),
                'link': mulu.get('href'),
                'ID': re.findall('\d+', mulu.get('href'))
            }  #过滤出字典
        mulu_url = result['link']
        print('读取图帖链接:', mulu_url)
        soup2 = BeautifulSoup(get(mulu_url), 'lxml')    #解析字典中的目录地址
        img_mulu = soup2.find("div", {"class": "main-image"}).find("img")['src']        #匹配图片地址
        page = soup2.find_all("span")[9]        #取图贴页数
        max_page = page.get_text()
        os.chdir(img_dir)
        new_dir(result['title'])
        for j in range(1,int(max_page) + 1):
            next_img_page = mulu_url + '/' + str(j)
            img_html = BeautifulSoup(get(next_img_page), 'lxml')
            #图片链接
            img_url = img_html.find("div", {"class": "main-image"}).find("img")['src']
            #图片名
            img_name = result['title']+str(j)
            # 下载图片
            down(img_name,img_url)
            print('图片地址: ',img_url)
            time.sleep(yanshi)

def down(name,image):
    f = open(name + '.jpg','wb+')
    img = requests.get(image,headers=headers)
    if str(img) == '<Response [200]>':
        print('下载图片...',end='')
        f.write(img.content)
    f.close()

def new_dir(name):  #创建文件夹
    if os.path.exists(name):
        print('文件夹已存在')
        os.chdir(name)
    else:
        print('创建文件夹: {}'.format(name))
        os.mkdir(name)
        os.chdir(name)

if __name__ == '__main__':
    img_dir = 'f:\学习资料'  # 设定存储爬取图片的路径
    new_dir(img_dir)
    yanshi = 0.5            #设定抓取图片延时(0.5秒)
    main()



#######The End   2019 11.28  22:28     ###################

本帖被以下淘专辑推荐: · SunGeekHouse|主题: 211, 订阅: 49

版权声明:

本站所有资源均为站长或网友整理自互联网或站长购买自互联网,站长无法分辨资源版权出自何处,所以不承担任何版权以及其他问题带来的法律责任,如有侵权或者其他问题请联系站长删除!站长QQ754403226 谢谢。

有关影视版权:本站只供百度云网盘资源,版权均属于影片公司所有,请在下载后24小时删除,切勿用于商业用途。本站所有资源信息均从互联网搜索而来,本站不对显示的内容承担责任,如您认为本站页面信息侵犯了您的权益,请附上版权证明邮件告知【754403226@qq.com】,在收到邮件后72小时内删除。本文链接:https://www.piaodoo.com/7790.html

搜索