python3编程08-爬虫实战:爬取网络图片

本篇博客爬取内容如下:


爬取校花网的图片

 

准备工作:

1.安装python3

2.安装pycharm

3.安装Scrapy,参考:Scrapy安装

 

cmd命令新建Scrapy工程

1. 在D:\PythonProjects目录下新建出一个名为pycodes的文件夹

 

2. Win+R 打开cmd命令行,用命令切换到D:\PythonProjects\pycodes目录下

   切换到d盘下,在cmd命令行下输入"d:"

d:

   进入到d盘 D:\PythonProjects\pycodes目录下

cd D:\PythonProjects\pycodes

3. 通过命令新建一个scrapy工程:

scrapy startproject pyscrapydemo

 

有如上“You can start your first spider with:”输出为成功创建scrapy工程。

4. 查看pycodes目录下生成了工程文件夹:

我们可以进入到spider目录下写我们的python爬虫程序 

例如创建了一个爬虫 demo.py,用命令scrapy crawl demo运行。

这里只是演示如何用命令创建一个scrapy工程,了解命令的作用以及执行命令后产生了什么变化即可。

 

用Scrapy爬取校花网图片

1. 创建工程

打开PyCharm软件,用PyCharm创建一个python项目:xiaohua(名字随意取)

点击PyCharm左下角Terminal进入命令行

  1. 2.创建Scrapy爬虫项目
scrapy startproject myfirstspider

3.创建一只简单爬虫

进入到爬虫项目目录myfirstspider

cd myfirstspider

创建爬虫

语法:scrapy genspider [参数] <爬虫名> <域名>

scrapy genspider -t basic xiaohua xiaohuar.com

其中:-t 为模板 

执行以上命令后,在spiders目录下生成xiaohua.py文件:

 4.编写爬虫代码

编辑xiaohua.py,内容如下:

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

class XiaohuaSpider(scrapy.Spider):
    name = 'xiaohua'
    allowed_domains = ['xiaohuar.com']
    start_urls = []
    #修改range()括号里的内容可以调整下载页面数量
    for i in range(3):
        url = "http://www.xiaohuar.com/list-1-%s.html" %i
        start_urls.append(url)

    def parse(self, response):
        if "www.xiaohuar.com/list-1" in response.url:
            # 下载的html源代码
            html = response.text
            # 网页中图片存储地址:src="/d/file/20160126/905e563421921adf9b6fb4408ec4e72f.jpg"
            # 通过正则匹配到所有的图片
            # 获取的是图片的相对路径的列表
            # \d+代表匹配一个或多个数字
            # \w+代表匹配一个或多个字母、数字、下划线的字符
            img_urls = re.findall(r'/d/file/\d+/\w+\.jpg', html)

            # 使用循环对图片页进行请求
            for img_url in img_urls:
                # 将图片的URL补全
                if "http://" not in img_url:
                    img_url = "http://www.xiaohuar.com%s" % img_url

                # 回调,返回response
                yield Request(img_url)
        else:
            # 下载图片
            url = response.url
            # 保存的图片文件名
            title = re.findall(r'\w*.jpg', url)[0]
            # 保存图片,保存的目录要先创建出来
            with open('D:\\xiaohua_img\\%s' % title, 'wb') as f:
                f.write(response.body)

D盘下新建xiaohua_img文件夹,用于保存爬虫图片

5.运行爬虫程序

scrapy crawl xiaohua

 

6.查看结果

查看在D:\xiaohua_img文件夹下,爬虫下载了校花图片,如下图。

 

小结:

Scrapy写爬虫程序的步骤:

1.创建工程

2.新建项目>scrapy startproject myfirstspider

3.创建爬虫

   >cd myfirstspider

   >scrapy genspider -t basic xiaohua xiaohuar.com

4.编写爬虫代码xiaohua.py

5.运行爬虫程序>scrapy crawl xiaohua

6.查看结果

 

完成! enjoy it!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值