美文网首页
scrapy爬虫报告

scrapy爬虫报告

作者: 周眠眠 | 来源:发表于2017-05-02 20:27 被阅读0次

    标签(空格分隔): 腾讯云ubuntu virtualenv scrapy


    环境配置

    1. 腾讯云

    三月份进行了申请,配置,用的是ubuntu

    2. 使用MobaXterm_Personal进行SSH远程登陆

    1、<i class="icon-file"></i> 新建一个session


    2、创建用户目录,添加用户,并设置工作目录和bash环境
    (附:当时没截图,此图片摘自网上)


    3、<i class="icon-file"></i> 重新建一个用户的session
    4、远程服务器登录成功


    3. 配置虚拟环境

    (pip和相关依赖包已经装过了)

    1.python虚拟环境安装

    pip install virtualenv
    

    2.python虚拟环境创建

    virtualenv python
    

    3.python虚拟环境激活

    cd python
    source bin/activate
    

    4.安装scrapy

    1.pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 
    2.pip install cryptography
    3.pip install scrapy
    

    在安装scrapy时提示:pip需要升级到最新版本:
    pip install --upgrade pip

    中途因为网络等原因失败过很多次:


    安装成功!!!
    图:


    创建爬虫项目

    1.创建一个新的scrapy项目

    scrapy startproject quotes
    

    该命令创建了含有以下内容的quotes目录:
    • scrapy.cfg: 项目的配置文件
    • quotes/: 该项目的python模块。之后您将在此加入代码。
    • quotes/items.py: 项目中的item文件.
    • quotes/pipelines.py: 项目中的pipelines文件.
    • quotes/settings.py: 项目的设置文件.
    • quotes/spiders/: 放置spider代码的目录.

    2. 编写文件quotes.py,然后放在/quotes/spiders/目录下

    (我是在本地写的文件,然后将其放在/quotes/spiders/目录下)
    coding=utf-8
    import scrapy

    #定义QuotesSpider类
       class QuotesSpider(scrapy.Spider):
            name = 'mianSpider'
            start_urls = [
            'http://quotes.toscrape.com/'
            ]
    
    #获得热门标签,并callback parse_tags
    def parse(self, response):
        for tag_item in response.css('span.tag-item a.tag::attr(href)').extract():
            yield scrapy.Request(response.urljoin(tag_item), callback=self.parse_tags)
    
    #yield热门标签下的名人名言、作者
    def parse_tags(self, response):
        for quote in response.css('div.quote'):
            yield {
                     'tag': response.css('h3 a::text').extract(),
                      'text': quote.css('span.text::text').extract_first(),
                     'author': quote.css('small.author::text').extract_first()
                  }
    
    #遍历标签下的所有页数
            next_page = response.css('li.next a::attr(href)').extract_first()
            if next_page is not None:
                next_page = response.urljoin(next_page)
                yield scrapy.Request(next_page,callback=self.parse_tags)
    

    3. 运行爬虫,将文档存为json

    scrapy crawl mianSpider -o quotes.json
    

    (额,其实是在无数次修改后才有了这结果。。。)

    图:


    4.将json转化为xml

    其实网上有json转为xml的在线工具
    本来打算用python来讲json转为xml,python有个python.load()方法可以解析json文件,但是因为json文件格式不太规范,不能直接解析出来,只能用for循环一行行的读出来。然后我就尝试着用正则表达式对读出的字符串进行匹配,转成xml格式,但是由于对正则表达式还不熟悉,失败很多次后还是没有成功,所以还没有得出最后结果。。。。。。
    这个是网上在线工具出来的效果:


    ...

    已解决,可以直接用scrapy crawl -o quote.xml

    相关文章

      网友评论

          本文标题:scrapy爬虫报告

          本文链接:https://www.haomeiwen.com/subject/rzdhtxtx.html