上次无意之中看到一个网站,里面全是美女的照片,我就心想,哪天有时间了得把这网站的所有美女照片都得爬下来。今天有时间,写了点代码,爬去了网站的所有照片。附上战果!图片实在是太多了,爬半个多小时

先附上所有的源代码:

# -*- coding: utf-8 -*-
"""
Created on Fri Nov  9 17:07:44 2018
@author: 小谢
"""
import requests
from bs4 import BeautifulSoup
import os
import random
import csv
import time
urls=[]
urlls=[]
datas=[]
i=0
def Download(name,url,dirname):dir=dirname+"//"path=os.path.join(dir,name)response=requests.get(url)try:with open(path,"wb") as f:f.write(response.content)f.close()global ii=i+1except Exception as e:print(e)
#获取每一个分类的URL和名字
def Geturl():resp=requests.get("http://www.27270.com/ent/meinvtupian/")resp.encoding="gbk"  #设置网页编码html=resp.textsoup=BeautifulSoup(html,"html.parser")divSoup1=soup.find("div",attrs={"id":"NewTagListBox"})aas=divSoup1.find_all("a")for a in aas:tup=(a['href'],a.string)urls.append(tup)  #将主页面的各个分栏的链接和名字加入urls元组中
def GetImages(url,dirname):print("*"*50)if os.path.exists(dirname):passelse:os.mkdir(dirname)   #创建目录try:resp=requests.get(url)resp.encoding="gbk"  #设置网页编码html=resp.textsoup=BeautifulSoup(html,"html.parser")divSoup=soup.find("ul",attrs={'class':'w110 oh Tag_list'})lis=divSoup.find_all("li")fp=open("meinv.csv","a",newline="")csv_writer=csv.writer(fp)for li in lis:img=li.find("img")alt=img['alt']name=alt+".jpg"      #图片的名字src=img['src']       #图片的下载地址tup=(name,src,dirname)Download(name,src,dirname)csv_writer.writerow(tup)print(tup)datas.append(tup)            #Download(data[0],data[1],dirname)fp.close()except Exception as e:print(e)
def GetUrls():Geturl()  #获取所有分栏的页面for url in urls:ur=url[0][:-5]    #将每个分栏的url链接去除最后的 .htmlfor i in range(11):i+=1if i==1:uuu=ur+".html"a=(uuu,url[1])urlls.append(a)else:uuu=ur+"_"+str(i)+".html"a=(uuu,url[1])urlls.append(a)
def main():GetUrls()  #获取所有页面的urlfor ur in urlls:print(ur[0],ur[1])GetImages(ur[0],ur[1])time.sleep(3)  #没抓取一个页面延时3秒
if __name__=='__main__':start=time.time()main()end=time.time()print("一共爬去了%s张照片,一共花费了%s的时间"%(str(i),(end-start)))

网站链接:http://www.27270.com/ent/meinvtupian/

爬取网站的第一步,就是先分析网站的结构。我们可以看到,上面这里有分类

我们右键检查元素,发现这些分类都有规律

我们写一个函数获得每个分类的链接和名字,将链接和名字以元组的形式存储在我们的全局变量 urls中

def Geturl():resp=requests.get("http://www.27270.com/ent/meinvtupian/")resp.encoding="gbk"  #设置网页编码html=resp.textsoup=BeautifulSoup(html,"html.parser")divSoup1=soup.find("div",attrs={"id":"NewTagListBox"})aas=divSoup1.find_all("a")for a in aas:tup=(a['href'],a.string)urls.append(tup)  #将主页面的各个分栏的链接和名字加入urls元组中

然后我们开始分析每一个分类的规律了,每一个分类都有很多栏,而每一个栏的url都有规律。

http://www.27270.com/tag/875.html
http://www.27270.com/tag/875_2.html
http://www.27270.com/tag/875_3.html
......

所有我们得构造每一个分类的链接,因为每一个分类的栏目数量不同,所以我们选了最多的14。将每一分类的每一页的每张图片的url加入urlls列表中

def GetUrls():Geturl()  #获取所有分栏的页面for url in urls:ur=url[0][:-5]    #将每个分栏的url链接去除最后的 .htmlfor i in range(14):i+=1if i==1:uuu=ur+".html"a=(uuu,url[1])urlls.append(a)else:uuu=ur+"_"+str(i)+".html"a=(uuu,url[1])urlls.append(a)

接下来的函数是获取图片的URL和名字,

def GetImages(url,dirname):print("*"*50)if os.path.exists(dirname):passelse:os.mkdir(dirname)   #创建目录try:resp=requests.get(url)resp.encoding="gbk"  #设置网页编码html=resp.textsoup=BeautifulSoup(html,"html.parser")divSoup=soup.find("ul",attrs={'class':'w110 oh Tag_list'})lis=divSoup.find_all("li")fp=open("meinv.csv","a",newline="")csv_writer=csv.writer(fp)for li in lis:img=li.find("img")alt=img['alt']name=alt+".jpg"      #图片的名字src=img['src']       #图片的下载地址tup=(name,src,dirname)   Download(name,src,dirname)  #下载图片csv_writer.writerow(tup)  #写入文件中print(tup)datas.append(tup)            #Download(data[0],data[1],dirname)fp.close()except Exception as e:print(e)

最后这个函数是下载图片

def Download(name,url,dirname):dir=dirname+"//"path=os.path.join(dir,name)response=requests.get(url)try:with open(path,"wb") as f:f.write(response.content)f.close()global ii=i+1   #每下载一张图片加1except Exception as e:print(e)

Python脚本爬取网站美女照片相关推荐

  1. 【python--爬虫】爬取网站美女照片

    爬取网站美女照片 # -*- coding: utf-8 -*-import requests from bs4 import BeautifulSoup import os import rando ...

  2. 20行Python代码爬取网站美女图,哇太多了,我U盘装满了

    淘女郎爬虫,可动态抓取淘女郎的信息和照片. 需要额外安装的第三方库 requests pip install requests pymongo pip install pymongo 模块功能 Tao ...

  3. 使用Python爬虫爬取网络美女图片

    代码地址如下: http://www.demodashi.com/demo/13500.html 准备工作 安装python3.6 略 安装requests库(用于请求静态页面) pip instal ...

  4. python如何爬取网站所有目录_用python爬虫爬取网站的章节目录及其网址

    认识爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索引.模拟 ...

  5. 运用Python爬虫爬取一个美女网址,爬取美女图

    运用Python爬虫爬取一个美女网址,爬取美女图 要运用到的python技术: 导入库 1.request 发送请求,从服务器获取数据 2.BeautifulSoup 用来解析整个网页的源代码 imp ...

  6. C++编写爬虫脚本爬取网站图片

    C++编写爬虫脚本爬取网站图片 整体代码设计思路 具体功能实现 初始化网络库 url中爬取图片 获取网页源代码 连接主机 url中获取主机名和文件名 html中提取连接 html中提取图片链接 获取并 ...

  7. 通过PYTHON爬虫爬取明星的照片和资料

    通过PYTHON爬虫爬取明星的照片和资料 一.准备工作 1.选择合适的网站 2.安装MongoDB数据库 3.导入依赖库 二.开始爬虫 一.准备工作 1.选择合适的网站 这次爬虫的目的,是为了为人脸识 ...

  8. python爬取网站美女图片

    今天周五,项目刚刚上线完,有些时间,闲着无聊,继续复习爬虫,这次打算爬取网站的美女图片.得先找到目标,然后目标网站还不会反爬虫,因为自己只是小白,好了开始. 寻找目标,发现了目标,哈哈 http:// ...

  9. python爬取网站美女图(附代码及教程)爬虫爬取海量手机壁纸,电脑壁纸,美女图片,风景图片等

    想要练习爬虫的兄弟们,可以看看这个 如果大神们看到有哪里可以改进的地方,请告诉小弟,我是个纯纯新手,练习了几次爬虫 以前一直用的BeautifulSoup,一直没有接触过正则表达式 正则表达式是一个非 ...

最新文章

  1. Java数据库连接池实现原理
  2. IndiaHacks 2016 - Online Edition (Div. 1 + Div. 2) A. Bear and Three Balls 水题
  3. 微软如何在3年内将数据中心的用水量削减95%
  4. Java中的OutOfMemoryError
  5. html5触边反弹,第四章课件.PPT_数字电子技术基础(ppt课件)_ppt_大学课件预览_高等教育资讯网...
  6. 异常检测算法之IForest
  7. xUtils项目框架
  8. python文件加锁
  9. 爬虫 正则 bs4 xpath 中文乱码 管道符
  10. [转]手把手教你搭建Hive Web环境
  11. VXLAN详解(二)
  12. sublime 添加 ConvertToUTF-8
  13. xshell绿色版安装,无限制
  14. 软件著作权申请:【01】账号申请
  15. gin框架自带的一些的鉴定权限机制 session cookie
  16. 联想笔记本加固态后没声音(关于固态那些事)
  17. 用计算机进行绘画教案,电脑绘画的教案
  18. 微分方程(人口预测与传染病模型)
  19. Arouter 跳转失败activityResumeTrigger: not whiteListed
  20. 如何高效Debug(又名如何高效解决问题)

热门文章

  1. JavaScript学习笔记——对象和数组(上)
  2. Minio 图片永久访问的问题处理
  3. 浙工大计算机学院 张晖,计算机学院(软件学院)IMUDGES新品发布会成功举办
  4. git ls-files:项目文件码数行数统计
  5. HSL和HSLA颜色
  6. C语言实验——某年某月的天数
  7. 零基础学习CSS(10)——属性选择器
  8. 保护模式超强的寻址功能:天空任鸟飞
  9. 有效管理自己知识,多总结和分享——2018七月份的尾巴
  10. 采集碰到的一大堆麻烦事