Python-Scrapy框架基础学习笔记

Python-Scrapy框架基础学习笔记

  • 1. 创建一个Scrapy项目(test_project01)
  • 2. settings文件的基础设置
  • 3. 定义Item
  • 4. 编写爬取内容Spider
  • 5. pipeline.py文件的编写
  • 6. 爬取

1. 创建一个Scrapy项目(test_project01)

  cd 进入指定目录:scrapy startproject test_project01

该命令会创建包含以下内容的test_project01目录

test_project01/
    scrapy.cfg
    test_project01/
        __init__.py
        items.py
        pipelines.py
        settings.py
        spiders/
            __init__.py
scrapy.cfg: 项目的配置文件
test_project01/: 该项目的python模块。之后在此加入代码。
test_project01/items.py: 项目中的item文件.编写需要保存的内容
test_project01/pipelines.py: 项目中的pipelines文件.管道,保存内容的编写
test_project01/settings.py: 项目的设置文件.
test_project01/spiders/: 放置spider代码的目录.

2. settings文件的基础设置

基础设置的内容:https://www.cnblogs.com/longyunfeigu/p/9494408.html。

简单的爬虫setting只需要修改以下内容

ROBOTSTXT_OBEY = False
DEFAULT_REQUEST_HEADERS #(请求头)
ITEM_PIPELINES #(管道设置,保存爬取的数据需要)

3. 定义Item

name1、name2表示需要保存的变量名

import scrapy
class TestProject01Item(scrapy.Item):
    # define the fields for your item here like:
    name1 = scrapy.Field()
	name2 = scrapy.Field()

4. 编写爬取内容Spider

  • 创建一个Spider,进入test_project01/test_project01/Spider
  • 输入scrapy genspider my_spider runoob.com,以runoob.com主页为例子
  • .\test_project01\test_project01\spiders 会创建一个my_spider.py的文件,包含以下初始内容
import scrapy
class MySpiderSpider(scrapy.Spider):
    name = 'my_spider'
    allowed_domains = ['runoob.com']
    start_urls = ['http://runoob.com/']

    def parse(self, response):
        pass

在此文件中表写爬取规则。

5. pipeline.py文件的编写

保存为json格式的数据

import codecs
import json

class TestProject02Pipeline:
    def __init__(self):
        self.file = codecs.open('projects.json','w',encoding = "utf-8")
		
    def process_item(self, item, spider):
    	data = json.dumps(dict(item),ensure_ascii=False)+"\n"
    	self.file.write(data)
    	return item

    def spider_closed(self,spider):
        self.file.close()

将数据保存数据库,或者保存多媒体文件略,这里只说明最基础的流程,其他的请自行百度了解。

6. 爬取

命令行进入项目的根目录\test_project01,输入scrapy crawl my_spider

你可能感兴趣的:(Python学习,python,scrapy,学习)