Python 爬虫 校花网[通俗易懂]

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

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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

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


 

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

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

 

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

  Python 爬虫 校花网[通俗易懂]

 

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

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

 

  Python 爬虫 校花网[通俗易懂]

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

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

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

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

Python 爬虫 校花网[通俗易懂]

 

 

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

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

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

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

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

Python 爬虫 校花网[通俗易懂]

 

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

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

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

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

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

Python 爬虫 校花网[通俗易懂]

 

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

  

 1 import requests,re,os
 2 
 3 #文件夹名称
 4 FileName= 'download'
 5 #保存图片
 6 def SaveImage(image,name="temp"):
 7     #图片存放路径
 8      fpath = os.path.join(FileName, name+'.jpg')
 9      response=requests.get("http://www.xiaohuar.com/d/file/"+image).content
10      #写入图片
11      with open(fpath+'.jpg', 'wb+') as f:
12          f.write(response)
13 
14 #获取当前页图片Url集合
15 def GetImage(fanyeUr):
16     #请求页面
17     page =requests.get(fanyeUr)
18     #设置编码
19     page.encoding='gbk'
20     #正则获取图片集合
21     imglist = re.findall('alt="(.*?)" src="/d/file/(.*?\.jpg)"', page.text)
22     #循环保存图片
23     for name,url in imglist:
24         print(url,name)
25         SaveImage(url,name)
26 
27 #判断文件夹是否存在
28 if not os.path.exists(os.path.join(os.getcwd(), FileName)):
29     #新建文件夹
30     os.mkdir(os.path.join(os.getcwd(),FileName))
31 
32 #请求第一页
33 fanyeUr='http://www.xiaohuar.com/p/suyan/index.html'
34 #循环翻页
35 for faye in range(1,13):
36     #获取翻页Url
37     GetImage(fanyeUr)
38     fanyeUr='http://www.xiaohuar.com/p/suyan/index_%s.html' % faye

 

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

Python 爬虫 校花网[通俗易懂]

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/167642.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 虚拟机和宿主机共享文件_安装vmware的宿主机

    虚拟机和宿主机共享文件_安装vmware的宿主机虚拟机网络共享给宿主机宿主机使用虚拟机的VPN连接需求VMware虚拟机中跑Windows10(下文称Guest),使用某客户端连接公司VPN(还需要启动联软UniAccess才可以正常访问内网),宿主机为Windows10(下文称Host),未安装该VPN客户端。现需要在Guest中连接VPN,然后共享给Host使用。关键词桥接:对应虚拟网卡VMnet0仅主机模式(HostOnly):对应虚拟网卡VMnet1实现步骤1.Guest添加桥接网卡

    2022年8月20日
    8
  • TCP/ip详解_TCP/IP详解

    TCP/ip详解_TCP/IP详解  TCP/IP详解学习笔记(1)-基本概念 为什么会有TCP/IP协议在世界上各地,各种各样的电脑运行着各自不同的操作系统为大家服务,这些电脑在表达同一种信息的时候所使用的方法是千差万别。就好像圣经中上帝打乱了各地人的口音,让他们无法合作一样。计算机使用者意识到,计算机只是单兵作战并不会发挥太大的作用。只有把它们联合起来,电脑才会发挥出它最大的潜力。…

    2025年7月4日
    2
  • resnet18 pytorch_如何搭建服务器

    resnet18 pytorch_如何搭建服务器参照ResNet50的搭建,由于50层以上几乎相同,叠加卷积单元数即可,所以没有写注释。101和152的搭建注释可以参照我的ResNet50搭建中的注释:训练可以参照我的ResNet18搭建中的训练部分:ResNet101和152可以依旧参照ResNet50的网络图片:上代码:ResNet101的model.py模型:importtorchimporttorch.nnasnnfromtorch.nnimportfunctionalasFclassDownSampl

    2022年10月6日
    2
  • android 定时器封装

    android 定时器封装好用的定时器封装工具类,谁用谁知道,代码仅供学习参考。importjava.util.HashMap;importjava.util.LinkedList;importjava.util.Map;importjava.util.Queue;importcom.tcl.framework.log.NLog;importandroid.os.Ha

    2022年7月25日
    10
  • Traceroute原理学习

    Traceroute原理学习Traceroute可以让我们看到IP数据报从一台主机传到另一台主机所经过的路由。曾经介绍过IP记录路由的选项RR,为什么不使用这个选项而另外开发一个新的应用程序Traceroute呢?原因有三:其一,并不是所有的路由器都支持记录路由这个选项;其二,记录路由一般是单向的选项,发送端设置了该选项,接收端不得不从收到的IP首部中提取出所有的信息,然后全部返回给发送端。大多数的ping服

    2022年7月21日
    15
  • ACM之Java输入输出[通俗易懂]

    ACM之Java输入输出[通俗易懂]一、Java之ACM注意点1. 类名称必须采用public class Main方式命名2. 在有些OJ系统上,即便是输出的末尾多了一个“ ”,程序可能会输出错误,所以在我看来好多OJ系统做的是非常之垃圾3. 有些OJ上的题目会直接将OI上的题目拷贝过来,所以即便是题目中有输入和输出文件,可能也不需要,因为在OJ系统中一般是采用标准输入输出,不需要文件4. 在有多行数据输入的情况下

    2022年5月9日
    166

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号