文章转载至:
mob6454cc6f27a3 的Python Scrapy 爬虫框架实例(一) 爬虫框架scrapy简单实例
吃面崩掉牙的Scrapy爬虫框架入门教程(1)——爬取廖雪峰老师的博客
!!只是爬取一个字段,并不将爬取的数据存储下来。!!
运行环境:
- window10 x64系统
- python3.6
- pycharm
- anaconda
- scrapy
安装好以上环境、包之后,打开cmd,输入scrapy startproject liaoxuefeng,出现以下提示后,就说明已经成功创建一个scrapy的新项目:
我这里已经安装好了,再次输入命令后提示说已经存在了,然后会给你贴出路劲,找到所创建的文件夹
在该项目的根目录下,文件夹形式如下:
liaoxuefeng/
scrapy.cfg
liaoxuefeng/
__init__.py
items.py
pipelines.py
settings.py
spiders/
__init__.py
...
开始编写爬虫代码
打开liaoxuefeng/liaoxuefeng/spiders,创建一个新文件liaoxuefeng.py,写入如下代码:
import scrapy
class LiaoxuefengSpider(scrapy.Spider):
# 这里是将爬虫定义为scrapy.Spider这个类下的一个实例。
# Spider这个类定义了爬虫的很多基本功能,我们直接实例化就好,
# 省却了很多重写方法的麻烦。
name = 'lxf'
#这是爬虫的名字,这个非常重要。
start_urls = ['http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000']
#这是爬虫开始干活的地址,必须是一个可迭代对象。
def parse(self, response):
#爬虫收到上面的地址后,就会发送requests请求,在收到服务器返回的内容后,就将内容传递给parse函数。在这里我们重写函数,达到我们想要的功能。
titles = response.xpath("//ul[@class='uk-nav uk-nav-side']//a/text()").extract()
#这是廖雪峰老师python教程的标题列表。我们利用xpath解析器对收到的response进行分析,从而提取出我们需要的数据。//XXX表示任何任何目录下的XXX区块,/XXX表示子目录下的XXX区块,XXX[@class=abc]表示带有class=abc属性值的XXX区块,/text()表示获取该区块的文本。最后加上.extract()表示将内容提取出来。
for title in titles:
print (title)
#这个没什么说的了,直接遍历,然后打印标题。
然后进入cmd,在项目的根目录下运行scrapy crawl lxf(这个lxf就是刚才liaoxuefeng.py文件中的name字段,千万不要弄错了),运行成功,将打印当页所有的目录名称:
目录挺多的,省略