python网络爬虫之scrapy 调试和爬取网页

 

1.D:\www\cakephp\app\Config\routes.php

以pipelines.py中改Test1Pipeline如下。这个看似中贯彻的凡拍卖在testSpider中回到的items数据。也就是存储数据的地方。我们拿items数据存储到json文件中错过

 

工程运行后,可以看出于目下生成了一个xundu.json文件。其中运行日志可以以log文件中翻

图片 1

一般来说例被的:

每当部署好cakephp之后,我们输入网址后都一般默认显示index/index
文件,那么怎么设置为?

图片 2

Shell调试:

1 items.py定义内容存储的关键字

先是以items.py中定义title, author.
这里的Test1Item和Django中的modul作用类似。这里可以用Test1Item看做是一个器皿。这个容器继承自scrapy.Item.

 

图片 3

图片 4

class Item(DictItem):

倘Item又连续自DictItem。因此得以当Test1Item就是一个字典的力量。其中title和author可以认为是item中之2个重大字。也不怕是字典中的key

 

class Test1Item(scrapy.Item):

    # define the fields for your item here like:

    # name = scrapy.Field()

    title=Field()

    author=Field()


下面就在test_spider.py中开始写网页解析代码

from scrapy.spiders import Spider

from scrapy.selector import Selector

from test1.items import Test1Item

 

class testSpider(Spider):

    name="test1"    #这里的name必须和创建工程的名字一致,否则会提示找不到爬虫项目

    allowd_domains=['http://www.xunsee.com']

    start_urls=["http://www.xunsee.com/"]

    def parse(self, response):

        items=[]

        sel=Selector(response)

        sites = sel.xpath('//*[@id="content_1"]/div')  #这里是所有数据的入口。下面所有的div都是存储的文章列表和作者

        for site in sites:

          item=Test1Item()

          title=site.xpath('span[@class="title"]/a/text()').extract()

          h=site.xpath('span[@class="title"]/a/@href').extract()

          item['title']=[t.encode('utf-8') for t in title]

        author=site.xpath('span[@class="author"]/a/text()').extract()

          item['author']=[a.encode('utf-8') for a in author]

          items.append(item)

         return items

获取到title以及author的内容后,存储到item中。再将所有的item存储在items的列表中
class Test1Pipeline(object):

    def __init__(self):

        self.file=codecs.open('xundu.json','wb',encoding='utf-8')

    def process_item(self, item, spider):

        line=json.dumps(dict(item)) + '\n'

        self.file.write(line.decode("unicode_escape"))

        return item

2 自定义之test_spider.py中开展网页数据的爬取并回数据

scrapy shell http://www.w3school.com.cn/xml/xml\_syntax.asp

可在如下终端界面调用过程代码如下所示:

图片 5

由这个爬虫可以看,scrapy的布局或比较简单。主要是三步:

登项目所当目,scrapy shell “网址”

系的网页代码:

我们所以scrapy来爬取一个切实的网站。以迅读网站也例。

3 pipelines.py中对tes_spider.py中回到的情开展仓储

图片 6

正如是首页的始末,我怀念如果得到文章列表以及对应之撰稿人称。
图片 7