Python脚本爬取网站美女照片
上次无意之中看到一个网站,里面全是美女的照片,我就心想,哪天有时间了得把这网站的所有美女照片都得爬下来。今天有时间,写了点代码,爬去了网站的所有照片。附上战果!图片实在是太多了,爬半个多小时
先附上所有的源代码:
# -*- 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脚本爬取网站美女照片相关推荐
- 【python--爬虫】爬取网站美女照片
爬取网站美女照片 # -*- coding: utf-8 -*-import requests from bs4 import BeautifulSoup import os import rando ...
- 20行Python代码爬取网站美女图,哇太多了,我U盘装满了
淘女郎爬虫,可动态抓取淘女郎的信息和照片. 需要额外安装的第三方库 requests pip install requests pymongo pip install pymongo 模块功能 Tao ...
- 使用Python爬虫爬取网络美女图片
代码地址如下: http://www.demodashi.com/demo/13500.html 准备工作 安装python3.6 略 安装requests库(用于请求静态页面) pip instal ...
- python如何爬取网站所有目录_用python爬虫爬取网站的章节目录及其网址
认识爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索引.模拟 ...
- 运用Python爬虫爬取一个美女网址,爬取美女图
运用Python爬虫爬取一个美女网址,爬取美女图 要运用到的python技术: 导入库 1.request 发送请求,从服务器获取数据 2.BeautifulSoup 用来解析整个网页的源代码 imp ...
- C++编写爬虫脚本爬取网站图片
C++编写爬虫脚本爬取网站图片 整体代码设计思路 具体功能实现 初始化网络库 url中爬取图片 获取网页源代码 连接主机 url中获取主机名和文件名 html中提取连接 html中提取图片链接 获取并 ...
- 通过PYTHON爬虫爬取明星的照片和资料
通过PYTHON爬虫爬取明星的照片和资料 一.准备工作 1.选择合适的网站 2.安装MongoDB数据库 3.导入依赖库 二.开始爬虫 一.准备工作 1.选择合适的网站 这次爬虫的目的,是为了为人脸识 ...
- python爬取网站美女图片
今天周五,项目刚刚上线完,有些时间,闲着无聊,继续复习爬虫,这次打算爬取网站的美女图片.得先找到目标,然后目标网站还不会反爬虫,因为自己只是小白,好了开始. 寻找目标,发现了目标,哈哈 http:// ...
- python爬取网站美女图(附代码及教程)爬虫爬取海量手机壁纸,电脑壁纸,美女图片,风景图片等
想要练习爬虫的兄弟们,可以看看这个 如果大神们看到有哪里可以改进的地方,请告诉小弟,我是个纯纯新手,练习了几次爬虫 以前一直用的BeautifulSoup,一直没有接触过正则表达式 正则表达式是一个非 ...
最新文章
- Java数据库连接池实现原理
- IndiaHacks 2016 - Online Edition (Div. 1 + Div. 2) A. Bear and Three Balls 水题
- 微软如何在3年内将数据中心的用水量削减95%
- Java中的OutOfMemoryError
- html5触边反弹,第四章课件.PPT_数字电子技术基础(ppt课件)_ppt_大学课件预览_高等教育资讯网...
- 异常检测算法之IForest
- xUtils项目框架
- python文件加锁
- 爬虫 正则 bs4 xpath 中文乱码 管道符
- [转]手把手教你搭建Hive Web环境
- VXLAN详解(二)
- sublime 添加 ConvertToUTF-8
- xshell绿色版安装,无限制
- 软件著作权申请:【01】账号申请
- gin框架自带的一些的鉴定权限机制 session cookie
- 联想笔记本加固态后没声音(关于固态那些事)
- 用计算机进行绘画教案,电脑绘画的教案
- 微分方程(人口预测与传染病模型)
- Arouter 跳转失败activityResumeTrigger: not whiteListed
- 如何高效Debug(又名如何高效解决问题)