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

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


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. vue.js动态表格增删改代码

    新建一个html文件,内容如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"& ...

  2. layer 弹出层不能居中

    $("#btnAdd").button("loading"); parent.layer.open({ title: '添加菜单', type: 2, maxm ...

  3. Codeforces Round #369 (Div. 2) B. Chris and Magic Square (暴力)

    Chris and Magic Square 题目链接: http://codeforces.com/contest/711/problem/B Description ZS the Coder an ...

  4. 9-10 November

    cout 和 printf 在 C++ 中的实现:四舍六入五随缘.比如 printf("%.0lf\n", x=1.5) => 1. 标准做法:printf("%d ...

  5. Vue点击切换Class变化,实现Active当前样式

    刚自学Vue不久,所以还不太熟,所以直接上代码. 一.先在data里增加一个变量,用来储存当前点击的元素 data() { return { activeClass: -1, // 0为默认选择第一个 ...

  6. 移动端轮播完整版css3加原生写法

    <!doctype html><html><head> <meta charset="UTF-8"> <meta name=& ...

  7. 转:SqlBulkCopy类进行大数据(一万条以上)插入测试

    转自:https://www.cnblogs.com/LenLi/p/3903641.html 结合博主实例,自己测试了一下,把数据改为3万行更明显!! 关于上一篇博客中提到的,在进行批量数据插入数据 ...

  8. Booting the Linux/ppc kernel without Open Firmware

    The DT block format 这一章定义了传递给内核的FDT(flattened device tree)的格式.关于它包含的内容以及内核需要的属性将在后续章节描述. 注:DT block应 ...

  9. Flask中的对象的配置

    常用的有 1.'DEBUG': False, # 是否开启Debug模式 2.'TESTING': False, # 是否开启测试模式 3.'SECRET_KEY': None # 在启用Flask内 ...

  10. python 卡方检验例子

    python 求拒绝域和卡方值 import scipy.stats as ss obs=[107,198,192,125,132,248] exp=[167]*6 #拒绝域 1%的显著水平,自由度5 ...