'''下方的库使用前需要进行安装操作
安装方法:
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)
这里是图片截图,只是单纯的依照斗图网上的页面和顺序对图片进行命名。本人比较懒!!!