Python爬虫系列-------Scrapy框架爬取校花网校花图片

news/2024/7/4 14:29:23

1.简述
上篇博客是 scrapy框架与 xpath抽取技术的结合
这次使用 正则抽取
目标:爬取校花网校花图片并保存在指定目录

2.配置
为防止触发反爬虫,依旧设置 爬取延迟 和 User-Agent 伪装浏览器
并规定不遵守目标网站的 robots 协议

3.上代码
因为没有使用 xpath ,所以 items 文件不写入内容
直接在爬虫文件 xiaohua.py 内写入

    # -*- coding=utf-8 -*-
    
    import re
    from scrapy.http  import Request
    import scrapy

    class XiaohuaSpider(scrapy.Spider):
             name='xiaohua'
             start_urls=['http://www.xiaohuar.com/list-1-0.html',]

             # 循环爬取10页
             def  start_requests(self):
                   reqs=[]
                   for i in range(10):
                        req=scrapy.Request('http://www.xiaohuar.com/list-1-%s.html' %(i))
                        reqs.append(req)

                   return reqs

             def parse(self, response):
                   if 'www.xiaohuar.com/list-1' in response.url:
                            html=response.text
                            
                            #获取目标图片 url
                            img_urls=re.findall(r'/d/file/\d+/\w+\.jpg',html)

                            #循环下载
                            for img_url in img_urls:
                                if  'http://' not in img_url:
                                
                                   #完整域名
                                   img_url='http://www.xiaohuar.com%s' %img_url

                                ##回调,生成 response 对象 并返回给 parse函数
                                yield   Request(img_url)
                    else:
                              #下载图片,获取图片地址完成后执行
                              url=response.url
                              #图片文件名
                              title=re.findall(r'(\w*.jpg)',url)[0]   
                              #保存在指定目录
                              with open('/root/Desktop/xiaohua/%s' %title,'wb') as f:
                                               f.write(response.body)

我们看 /root/ Desktop/ xiaohua 目录里内容
图片排放是无序的
在这里插入图片描述


http://www.niftyadmin.cn/n/1710844.html

相关文章

windows的消息定义大全

大家平常总使用SendMessage(句柄,消息,参数1,参数2)吧? 这里贴一下那个“消息的内容”。下面,左边是消息,右边是ID,十六位的,要转换为10进制后才可以给E用。 比如 SendMessage(文本框的句柄,13,256,一个初始化的容器)&…

银河麒麟系统怎么进入root_银河麒麟桌面操作系统安装_V4/v10系统详细使用教程...

安装前准备工作:将银河麒麟系统镜像刻录到光盘或U盘.开始安装:一、将刻录好的光盘或U盘接入机器后,开机按F2进入快速引导界面,选择U盘或者光驱引导.如下图二、选择”Install Kylin”3.选择安装语言继续4.选择安装方式从Live镜像安装继续5.选择安装类型快速安装kylin现在安装.(注…

Python爬虫系列------Scrapy框架爬取西刺代理IP

1.Scrapy简介 scrapy是一个基于Twisted的异步处理框架,是纯python实现的爬虫框架,其架构清晰,模块之间的耦合程度低,可扩展性极强。可以灵活的完成各种需求。我们只要定制开发几个模块就可以轻松的实现一个爬虫! scr…

获取WiFi密码

1.获取附近WiFi名称 import pywifi from pywifi import const# 扫描附近wifi def wifi_names():wifi pywifi.PyWiFi()ifaces wifi.interfaces()[0]# 获取扫描结果, 中文会乱码result ifaces.scan_results()for name in result:# ssid wifi的名称print(name.ssid)wifi_names…

伺服速度控制模式接线图_伺服驱动器三种控制模式的接线

我们在平时控制伺服电机的时候,经常用到的控制模式就是三种模式分别是速度控制模式、位置控制模式、转矩控制模式。现以三菱的伺服驱动器为例,下面分别了解一下每个模式的控制接线及其注意事项。一、速度控制模式注 1. 为了防止触电,请务必将…

django restframework

1.POST请求免于csrf认证 from django.views.decorators.csrf import csrf_exemptcsrf_exempt写入被修饰的函数2.POST请求仅要求此函数要通过csrf认证 from django.views.decorators.csrf import csrf_protectcsrf_protect仅限 FBV模式 3.jango序列化 import jsonfrom django…

演练VC中的COMMON一族(一)

http://bd7451321.spaces.live.com/blog/cns!B0D5189A8E5CA565!465.entry 声明:由于在CSDN论坛看到不少VC新手问及VC控件的使用。本人手头正好有一份以前下载到的一份资料,讲述的比较详细。所以发出来和大家 共享。但由于时间久远,已不及得下…

用VC++6.0编程实现汉字拼音查找

摘要 使用VC6.0编程查找汉字的拼音 关键字 汉字,拼音,资源 下载:http://www.cppblog.com/Files/edog/LookPY.rar 一、 引言 在读书看报或者浏览网上文章时候,经常会看到一些比较生僻的汉字而不知道其读音…