zoukankan      html  css  js  c++  java
  • Python 爬虫 校花网

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

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


    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. 然后把这些零碎的代码串起来就可以了。

      

     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.查看效果完成,爬的照片就不贴了,好好学习,天天向上

  • 相关阅读:
    自学大数据初期
    研究正则表达式
    智能穿戴设备移动APP端与外设数据传输协议
    集成Facebook SDK
    Core Data数据库迁移
    用Time Machine做更换电脑工具
    iOS Automation Test
    编译libcore-amr静态库
    解决CentOS 7安装zabbix 3.0 无法启动zabbix-server的问题[segfault at 18 ip 00007f78842b4bd0 sp 00007fff1995a818 error 4 in libpthread-2.17.so[7f78842ab000+16000]]
    CentOS 7 安装Percona,Xtrabackup
  • 原文地址:https://www.cnblogs.com/lwqstyle/p/8109484.html
Copyright © 2011-2022 走看看