最近开始学习爬虫,接触到了scrapy这个框架,简直神器,也不用自己设置多进程啥的了,好用的飞起
看了挺多博客的介绍,感觉崔庆才的文章写得很清晰,特别是scrapy的原理,通俗易懂,想看的可以移步到此处 ->
>> 崔庆才的博客 <<
>> 官方文档在这里 <<
对着官方的教程文档,做一点自己的解析。官方文档使用的是一个名人名言的网站,很适合练手。
废话少说,开整
-
建立项目
D:\netspider>scrapy startproject getquotes
项目建立好了之后,目录如图所示
其他的文件先不用管,在spider这个文件夹中,建立爬虫文件,myspider.py,包含代码如下
import scrapy
class myspider(scrapy.Spider):
# 设置爬虫名称
name = "get_quotes"
# 设置起始网址
start_urls = ['http://quotes.toscrape.com']
def parse(self, response):
#使用 css 选择要素进行抓取,如果喜欢用BeautifulSoup之类的也可以
#先定位一整块的quote,在这个网页块下进行作者、名言,标签的抓取
for quote in response.css('.quote'):
yield {
'author' : quote.css('small.author::text').extract_first(),
'tags' : quote.css('div.tags a.tag::text').extract(),
'content' : quote.css('span.text::text').extract_first()
}
scrapy会默认先调用parse()函数进行url的request处理,因为parse()是scrapy的默认回调函数,需要覆写它来进行适配我们的抓取任务。
该网站的元素定位还是很清晰的:
运行结果如下:
成功将作者,名言内容,标签获取到。
个人比较喜欢使用xpath进行定位,两种方法都可以,有时候还需要结合使用。scrapy的基本使用方法就是这样,下一篇写一下循环获取与数据保存。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。