初学爬虫
本人最近初学爬虫的相关知识和实现,这里简单介绍一下对如何用scrapy进行百度图片的抓取,记录一下自己踩过的坑。
选择工具
- Pycharm 2020.1
- Scrapy
- python 3.8
功能说明
制作百度图片的scrapy爬虫,能够根据关键字下载百度图片并标明序号和进行存储。
具体内容和代码
由于scrapy工具有出色的表现和良好的口碑,因此一直想学习用scrapy来爬取数据。
- 在Pycharm中安装scrapy,运用Pycharm安装库方法即可,打开Pycharm后,点击File->Setting->Project
Interpreter后,选择弹出对话框的+,从选择包中选择scrapy安装即可。!
在这里插入图片描述
其中踩过的坑在后续章节中会写明。
安装完scrapy, 即可在Pycharm终端处通过命令
scrapy startproject projectname
建立爬虫项目,生成pipeline, setting等相关文件。这里我写的项目名称是BaiduScrapy。在./BaiduScrapy/Spiders文件夹下的新建爬虫的python文件:BaiduPicSpider.py,作为爬虫的类。
生成的项目目录如下图:
3.
后续修改以下程序实现目标工程:
Settings.py处增加:
ROBOTSTXT_OBEY = False
MAX_PAGE = 30
IMAGES_STORE = './images'
ITEM_PIPELINES = {
'BaiduScrapy.pipelines.BaiduImagePipeline': 300,
}
BaiduPicScrapy.py的代码为:
# -*- coding: utf-8 -*-
# Define here the models for image scrape
from scrapy import Spider, Request
from urllib.parse import quote
from BaiduScrapy.items import BaiduImageItem
import json
class ImageSpider(Spider):
name = 'image'
allowed_domain = ['images.baidu.com']
start_url = ['https://image.baidu.com/']
url_info = {
'url_se