创建一个py文件 并在命令终端 进入到对应的文件目录下 执行
文件格式 .jl 类别:Julia Source Code File。JL文件保存为文本格式 因此它可以用任何文本编辑器进行编辑。
scrapy runspider quotes_spider.py -o quotes.jl
完成后 同级目录下 会多一个文件 quotes.jl 文件中将包含 JSON 行格式的引号列表 其中包含文本和作者 如下所示
{ author : Jane Austen , text : u201cThe person, be it gentleman or lady, who has not pleasure in a good novel, must be intolerably stupid.u201d }
{ author : Steve Martin , text : u201cA day without sunshine is like, you know, night.u201d }
......
这些都是怎么发生的呢
当您运行命令 scrapy runspider quotes_spider.py -o quotes.jl 时 Scrapy会查找你定义的蜘蛛类 QuotesSpider 之后自动使用爬虫引擎 框架的核心 运行它。
这个爬取的过程由制造一些请求开始 请求的url就是你蜘蛛类中定义的start_url(这是一个url列表) 请求完成后 会调取默认回调函数parse 且会将请求的响应response作为一个参数传递给parse回调函数。在回调函数中 这里使用了css选择器先获取了页面中所有的元素 然后循环每一句名言 并使用yield函数生成一个python字典 这个数据是被抛出的 你在文件中看到了 然后我们查询是否还有下一页数据 如果存在 我们就使用相同的回调方法 重新执行一遍这个过程 直到没有下一页为止。
在这里您会注意到 Scrapy的主要优势之一: 请求是异步调度和处理的。
这意味着 Scrapy不需要等待请求完成和处理 它可以在此期间发送另一个请求或做其他事情。这也意味着即使某些请求失败或在处理它时发生错误 其他请求也可以继续进行。虽然这使您可以进行非常快速的爬网 以容错方式同时发送多个并发请求 但 Scrapy 还让您可以通过一些设置来控制爬网的礼貌。
你可以做一些事情 比如设置每个请求之间的下载延迟 限制每个域或每个 IP的并发请求数量 甚至使用自动限制扩展来尝试自动找出这些。
上面这些设置 后面我们会涉及到 现在不着急了解具体是怎么设置的。
注意
对数据储存 你可以选择多种方式 导出格式可以使用 jsonXMLcsv。或者写item pipline存储到数据库上。
还有其它您已经了解了如何使用 Scrapy从网站中提取和存储项目 但这只是表面。
Scrapy提供了许多强大的功能来使抓取变得简单高效 例如
内置的css选择器和xpath表达式以及辅助正则表达式 来帮助我们提取数据.
一个交互式 shell 控制台 IPython感知 用于尝试使用CSS和XPath表达式来抓取数据 在编写或调试蜘蛛时非常有用。
内置支持以多种格式 JSON、CSV、XML 生成提要导出并将它们存储在多个后端 FTP、S3、本地文件系统
强大的编码支持和自动检测 用于处理外部、非标准和损坏的编码声明。
强大的可扩展性支持 允许您使用signals和定义良好的(middlewares, extensions, and pipelines)插入自己的功能。
用于处理的各种内置扩展和中间件
HTTP features like compression, authentication, cachinguser-agent spoofingrobots.txtcrawl depth restriction一个 Telnet 控制台 用于连接到在Scrapy进程中运行的Python 控制台 以检查和调试您的爬虫
加上其他好东西 比如可重复使用的蜘蛛类 从Sitemap和 XML/CSV 提要中抓取url、用于自动下载与抓取的项目相关联的图像 或任何其他媒体 的媒体管道、缓存 DNS解析器等等
下一步安装 Scrapy 按照教程学习如何创建一个成熟的 Scrapy项目。 谢谢你的关注



