Python-Scrapy框架基础学习笔记
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