爬虫:是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。

福利来了  校花网 ,首先说为什么要爬这个网站呢,第一这个网站简单爬起来容易,不会受到打击,第二呢 你懂得...。


1.第一步,需要下载爬虫所用

Requests模块,当安装Python的时候会自动安装上pip管理包工具,要是没有的话自己下载一下,地址

1.1  第二步打开的cmd 运行 pip install requests 命令,然后回车,会自动下载。

  

2.打开你的Pycharm,引入你的requests包,requests模块是可以模拟发送请求的一个模块,也有其他模块比如:urllib、httplib、Queue...等等。

另外 re 是正则模块,还有 os 对文件操作模块都引用上。

  

3.然后定义一个方法SaveImage(),用户保存获取图片的方法。

3.1 由于不可能保存一张图片,所以图片url和name都写成参数形式。

3.2 with open as 关键字是对操作文件的一种封装,包括异常处理和释放资源都有 。

3.3  write()  是写入二进制,所以 response.content 返回的是二进制。

4. 上面说到不可能只保存一直图片,所以要定义一个方法GetImage()获取当前页面所有图片的url和name。

4.1 首页先Get请求校花网其中一个导航栏中的url。

4.2 然后设置编码格式,可以右键在源代码中的 charset 查看,这里是 "gbk" 编码格式。

4.3 然后使用正则的 findall()方法,参数是一个正则和一个网页源代码,用 page.text可以获取到,返回一个字典类型。

4.5 然后循环打印 url和name,并调用上面写的保存图片的SaveImage()存起来。

5.到目前为止可以获取到整页的图片和名字了,那么有许多页怎么办呢,很简单....

5.1 为什么要把第一页的url拿出来呢,因为是这个网站的第一页和其他页的url规则不一样,所以单独处理一下。

5.2 然后for循环,循环 range(),这里 1,13 代表从1开始,到13前的一个数结束。

5.3 在循环的过程中调用获取GetImage()方法.

5.4 最后一步,每次循环的时候 使用 %s 占位符 改变翻页的url。然后Ctrl+Shift+F10 完成!

6. 然后把这些零碎的代码串起来就可以了。

  

 import requests,re,os

 #文件夹名称
FileName= 'download'
#保存图片
def SaveImage(image,name="temp"):
#图片存放路径
fpath = os.path.join(FileName, name+'.jpg')
response=requests.get("http://www.xiaohuar.com/d/file/"+image).content
#写入图片
with open(fpath+'.jpg', 'wb+') as f:
f.write(response) #获取当前页图片Url集合
def GetImage(fanyeUr):
#请求页面
page =requests.get(fanyeUr)
#设置编码
page.encoding='gbk'
#正则获取图片集合
imglist = re.findall('alt="(.*?)" src="/d/file/(.*?\.jpg)"', page.text)
#循环保存图片
for name,url in imglist:
print(url,name)
SaveImage(url,name) #判断文件夹是否存在
if not os.path.exists(os.path.join(os.getcwd(), FileName)):
#新建文件夹
os.mkdir(os.path.join(os.getcwd(),FileName)) #请求第一页
fanyeUr='http://www.xiaohuar.com/p/suyan/index.html'
#循环翻页
for faye in range(1,13):
#获取翻页Url
GetImage(fanyeUr)
fanyeUr='http://www.xiaohuar.com/p/suyan/index_%s.html' % faye

7.查看效果完成,爬的照片就不贴了,好好学习,天天向上

Python 爬虫 校花网的更多相关文章

  1. Python之爬虫-校花网

    Python之爬虫-校花网 #!/usr/bin/env python # -*- coding:utf-8 -*- import re import requests # 拿到校花网主页的内容 re ...

  2. 用python爬校花网

    import requests import re import hashlib,time def get_index(url): response=requests.get(url) if resp ...

  3. Python 爬虫 爬校花网!!

    爬虫:是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本 1.福利来了  校花网 ,首先说为什么要爬这个网站呢,第一这个网站简单爬起来容易不会受到打击,第二呢 你懂得... 1.第一步,需要下载 ...

  4. python爬虫基础应用----爬取校花网视频

    一.爬虫简单介绍 爬虫是什么? 爬虫是首先使用模拟浏览器访问网站获取数据,然后通过解析过滤获得有价值的信息,最后保存到到自己库中的程序. 爬虫程序包括哪些模块? python中的爬虫程序主要包括,re ...

  5. 爬虫(猫眼电影+校花网+github+今日头条+拉钩)

    Requests+正则表达式爬取猫眼TOP100榜电影信息 MARK:将信息写入文件解决乱码方法,开启进程池秒爬. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ...

  6. python实战项目 — 爬取 校花网图片

    重点: 1.  指定路径创建文件夹,判断是否存在 2. 保存图片文件 # 获得校花网的地址,图片的链接 import re import requests import time import os ...

  7. Python-爬取校花网视频(单线程和多线程版本)

    一.参考文章 python爬虫爬取校花网视频,单线程爬取 爬虫----爬取校花网视频,包含多线程版本 上述两篇文章都是对校花网视频的爬取,由于时间相隔很久了,校花网上的一些视频已经不存在了,因此上述文 ...

  8. 【收藏】收集的各种Python爬虫、暗网爬虫、豆瓣爬虫、抖音爬虫 Github1万+星

    收集的各种Python爬虫.暗网爬虫.豆瓣爬虫  Github 1万+星 磁力搜索网站2020/01/07更新 https://www.cnblogs.com/cilisousuo/p/1209954 ...

  9. day1之校花网小试牛刀

    一 利用生成器来完成爬去校花网视频 import requests import re import os import hashlib import time DOWLOAD_PATH=r'D:\D ...

随机推荐

  1. Vuex-全局状态管理【简单小案例】

    前言: Vuex个人见解: 1.state :所有组件共享.共用的数据.理解为不是一个全局变量,不能直接访问以及操作它.2.mutations : 如何操作 state 呢?需要有一个能操作state ...

  2. JavaScript正则表达式(四)

    正则表达式方法 一.test方法 用于测试字符串参数中是否存在匹配正则表达式模式的字符串 如果存在就返回true,否则返回false 实例: 1.使用test方法不设置g标志时  2.使用test方法 ...

  3. phpstudy升级5.7

    1:备份当前数据库数据. 最好是导成 SQL 文件 2:备份 PhpStudy 下的 MySQL 文件夹.以防升级失败.还可以使用旧版本的数据库 3:下载MySQL5.7.解压.然后放在 PhpStu ...

  4. Bugku web web基础$_GET

    web基础$_GET 打开网站后发现 $what=$_GET['what']; echo $what; if($what=='flag') echo 'flag{****}'; 根据这段话的意思是将w ...

  5. makefile filter &&filter-out

    sources := foo.c bar.c baz.s abc.h    foo: $(sources)            gcc $(filter %.c %.s,$(sources)) -o ...

  6. 【HDOJ6731】Angle Beats(极角排序)

    题意:二维平面上给定n个整点,q个询问 每个询问给定另外的一个整点,问其能与n个整点中任意取2个组成的直角三角形的个数 保证所有点位置不同 n<=2e3,q<=2e3,abs(x[i],y ...

  7. Kaggle 房价预测问题参考资料

    作者的 Kaggle 主页:https://www.kaggle.com/pavansanagapati Tutorial - Housing Prices Model Prediction http ...

  8. 任何国家都无法限制数字货币。为什么呢? 要想明白这个问题需要具备一点区块链的基础知识: 区块链使用的大致技术包括以下几种: a.点对点网络设计 b.加密技术应用  c.分布式算法的实现 d.数据存储技术 e.拜占庭算法 f.权益证明POW,POS,DPOS 原因一: 点对点网络设计 其中点对点的P2P网络是bittorent ,由于是点对点的网络,没有中心化,因此在全球分布式的网

    任何国家都无法限制数字货币.为什么呢? 要想明白这个问题需要具备一点区块链的基础知识: 区块链使用的大致技术包括以下几种: a.点对点网络设计 b.加密技术应用  c.分布式算法的实现 d.数据存储技 ...

  9. Android Build System Ultimate Guide

    Android Build System Ultimate Guide April 8,2013 Lately, Android Open Source Project has gone throug ...

  10. firefox的group群组功能很好!

    ================================ /usr/share/themes中有一些主题,包括: adwaita: 阿德维塔, 不二论 anaconda等等. 计算机环境: f ...