Scrapy爬虫库使用初体验

Posted 奇小东

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Scrapy爬虫库使用初体验相关的知识,希望对你有一定的参考价值。

安装pip install Scrapy

中间可能会遇到的问题:

  • 超时,网络问题需要多次尝试
  • 缺少vc++库,官网可以下载

创建项目:

  • scrapy startproject *****

其中*****是你的项目名

本文中使用tutorial

目录如上图所示

在items.py中写入需要保存的字段

import scrapy


class TutorialItem(scrapy.Item):
    # define the fields for your item here like:
    # name = scrapy.Field()
    title = scrapy.Field()
    link = scrapy.Field()
    pass

 

上述代码中TutorialItem和项目名对应。这里保留两个字段,链接中的title和link

 在spiders文件夹中新建爬虫文件命名随意,本文中命名为dmoz_spider.py

import scrapy

from tutorial.items import TutorialItem

class DmozSpider(scrapy.Spider):
    name = "dmoz"
    allowed_domains = ["http://www.wust.edu.cn/default.html"]
    start_urls = [
        "http://www.wust.edu.cn/default.html"
    ]

    def parse(self, response):
        for sel in response.xpath(\'//ul/li\'):
            item = TutorialItem()
            item[\'title\'] = sel.xpath(\'a/text()\').extract()
            item[\'link\'] = sel.xpath(\'a/@href\').extract()
            yield item

这里定义了一个名为dmoz的爬虫,它去找存在于<ul>中的<li>中的<a>标签中的text和href,并将text赋给item中定义的title字段,将href赋给item中定义的link字段。=。=

yield 是用来在迭代时减少内存开销的

此时一个简单的爬虫已经搭建完成,这时我们运行

scrapy crawl dmoz -o result.josn -t json

就可以运行名为dmoz的爬虫,并将结果保存在result.json中,结果如图:

此处默认保存的是Unicode编码

以上是关于Scrapy爬虫库使用初体验的主要内容,如果未能解决你的问题,请参考以下文章

Python爬虫框架--pyspider初体验

scrapy按顺序启动多个爬虫代码片段(python3)

scrapy主动退出爬虫的代码片段(python3)

phantomjs2.1 初体验

爬虫之初体验

爬虫验证码识别初体验(文末代码)