Scrapy常见命令总结:
// 创建一个scrapy模板项目
scrapy startproject myproject
// 创建一个爬虫文件【必须在myproject/myproject/spiders目录执行命令】
scrapy genspider spiderName mydomain.com
// 运行爬虫【spiderName这边必须是爬虫文件类中的name属性值,默认和爬虫文件名一致】
scrapy crawl spiderName
// 进入爬虫控制台(后面url是需要爬虫的链接)
scrapy shell [url]
spiders模块:
是一个实现爬虫的类,所以的爬虫文件都放置spiders文件夹中,scrapy爬虫框架会自动调用!只要继承spider类并重写其中某些方法即可实现爬虫!
爬虫Spider类:默认开始url会寻找start_urls,请求后跳转到parse方法【可以重写start_requests方法开改变默认行
class MySpider(scrapy.Spider):
name = 'myspider'
allowed_domains = ['example.com']
# 默认开始url会寻找start_urls,请求后跳转到parse方法【可以重写start_requests方法开改变默认行为】
start_urls = [
'http://www.example.com/',
]
def parse(self, response):
self.logger.info('A response from %s just arrived!', response.url)
Item模块:
Item就是scrapy封装后的字典【爬虫数据更方便处理】
class Product(scrapy.Item):
name = scrapy.Field()
price = scrapy.Field()
stock = scrapy.Field()
last_updated = scrapy.Field(serializer=str)
Pipeline【Item管道】:
【专业处理Item数据的管道----爬虫结束后执行】
参考官方文档:https://doc.scrapy.org/en/latest/topics/item-pipeline.html
middlewares【中间件】分两种类型:
A、下载中间件:Downloader Middleware【多个spider之间关系----连接到Scrapy的spider处理机制的钩子的框架】
B、爬虫中间件:Spider Middleware【单个spider是请求和响应处理----是连接到Scrapy的请求/响应处理的钩子的框架】
参考官方文档:https://doc.scrapy.org/en/latest/topics/spider-middleware.html