爬取斗图王图片

'''下方的库使用前需要进行安装操作
安装方法:
1.打开 cmd(命令提示符)win10系统直接打开开始菜单,然后输入cmd即可打开。
2.输入 pip install requests  以此类推,一个个安装。
下面第二行和第三行,安装 bs4 和lxml
'''
import requests
from bs4 import BeautifulSoup
from lxml import etree
import re
import os
import time

#函数为获得需要爬取的页面信息,并返回页面信息
def gethtml(pagenum):
#try...except...方法是避免爬取出错导致程序终止。
        try:
        #start_url为初始URL,需要从这个地址中获取图片链接
                start_url = 'http://www.bbsnet.com/doutu/page/'
                url = start_url + str(pagenum)
                r = requests.get(url, timeout=10)	#使用requests库进行爬取,然后使用BeautifulSoup进行页面解析,
                html = BeautifulSoup(r.text, 'lxml')
                print(r.status_code)
        except:
                print('gethtml')
        return html

#获取图片链接         
def parsepage(html):
        items = html.find_all(name='img',attrs={"width":"300","height":"200"})
        yield items
  
#下载图片
def downloader(ite, pagenum):
#os库的使用方法,本人博客中有详细的介绍

        if not os.path.exists('C:\\Users\\Administrator\\Desktop\\python\\爬取的图片'):	#此处的路径可以换成自己的文件路径。
                os.mkdir('C:\\Users\\Administrator\\Desktop\\python\\爬取的图片')	#此段代码的意思是如果此路径下爬取的图片这个文件夹不存在,则创建一个新的
        num=1
        for ul in ite:
            u=ul.get('src')
            s=requests.get(u)
            print(u)
            #进行打开文档读取或者写入操作的时候建议使用with open (path)as f: 的方式,好处是不用考虑操作完成后的文件关闭。
            with open('C:\\Users\\Administrator\\Desktop\python\\爬取的图片\\ 第{}页第{}张.jpg'.format(pagenum,num), 'wb')as f:
                f.write(s.content)
            print('正在打印第{}页{}张'.format(pagenum,num))
            num +=1
  #主函数,所有函数都在这里调用
def main(pagenum):
        
        html = gethtml(pagenum)
        for ite in parsepage(html):
                downloader(ite, pagenum)
                

if __name__ == '__main__':
        for pagenum in range(18):
                main(pagenum)
                time.sleep(10)

这里是图片截图,只是单纯的依照斗图网上的页面和顺序对图片进行命名。本人比较懒!!!
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值