python爬虫之scrapy框架
scrapy底层基于twisted,是io多路复用的,高并发的,是select+回调+事件循环的
使用scrapy最好不要写用同步io,用同步框架、库等,这样会降低scrapy的并发性能
scrapy默认文件
可以百度scrapy的官方文档scrapy document
创建一个scrapy项目
>>scrapy startproject ArticleSpider
之后会有
You can start your first spider with:
cd ArticleSpider
scrapy genspider example example.com
随便按照提示选一个网页>>scrapy genspider jobbole news.cnblogs.com
会生成一个基本的爬虫
当然,我们可以在命令行里用scrapy crawl
来运行一个爬虫
但这样不好调试
我们可以在pycharm里通过py文件的方式来调试
事实上也可以通过py文件来创建scrapy爬虫,只要其中有类继承了scrapy.Spider
在项目目录下创建py文件
from scrapy.cmdline import execute
import sys
import os
'''python文件运行时都会有这个变量,显示当前脚本的路径,包括脚本'''
print(__file__)
'''os模块的这个函数可以找到当前python文件的根目录'''
sys.path.append(os.path.dirname(__file__))
execute(["scrapy", "crawl", "jobbole"])
可以执行爬虫脚本