美文网首页程序员
学习编程的你,遇到了Bug该怎么办?

学习编程的你,遇到了Bug该怎么办?

作者: 爱吃西瓜的番茄酱 | 来源:发表于2017-11-12 09:10 被阅读114次
学习

这里我先回答标题的问题,答案就是:百度!

直接把错误提示复制在搜索栏,用百度搜索。如果没有现成的错误提示,只有模糊的需求,那就整理一下需求,组织一下语言,然后用百度搜索自己的需求。

不要担心在百度上搜不到解决方案,真的,除非你已经在某个领域达到了比较高的水平,否则一定可以在百度上找到想要的答案的。关于编程上的问题,解决办法常在CSDN、博客园、segmentfault、Stackoverflow、知乎或简书之中。善用百度,可以使我们的学习更加高效。(能用谷歌当然更好)

举个栗子吧:

这段时间我一直在学习爬虫,昨天开始接触爬虫最流行的框架:Scrapy。我首先要解决的问题就是scrapy的安装。

于是我不假思索的打开shell,输入:

pip install scrapy

前提:pip(软件包管理器)在之前我已经装好了的。

果不其然,它报错了,哎呀,我昨天装的,没有保存错误信息,现在写推文没法展示报错提示了。大概意思就是我缺少win32API,安装失败。

然后我就在百度上搜索win32API:

image

然后在其官网上找到了我想要的pywin32的扩展包:

image

注意:一定要下载符合自己电脑上python软件的位数和版本号,一个都不能错,否则会安装失败的。

把pywin32安装好了之后,再来

pip install scrapy

大概一分钟左右安装完成,我安装的是scrapy 1.4.0。

image

然后就可以用scrapy愉快的学习爬虫了,于是我迫不及待用专供爬虫初学者训练爬虫技术的网站(

http://books.toscrape.com)来练练手:

image

这个网站专供爬虫训练,没有什么实际意义。

网站上有1000本书,每页20本,一共50页。我仅爬取这1000本书的书名和书价信息。
完整源码如下:

import scrapyclass BoooksSpider(scrapy.Spider):
    """定义一个爬取书籍的类,继承scrapy.Spider"""

    # 每个爬虫的唯一标识
    name = "books"

    # 定义爬虫爬取的起始点,起始点可以是多个,这里只有一个
    start_urls = ["http://books.toscrape.com/"]    
    
    def parse(self, response):
        """页面解析函数"""
        # 每本书的信息在<article class="product_pod">中,
        # 我们使用css()方法找到所有这样的article元素,并依次迭代
        for book in response.css("article.product_pod"):           
           
            # 书名信息在article>h3>a元素的title属性里
            name = book.xpath("./h3/a/@title").extract_first()           
          
            # 书价信息在<p class="price_color">的text中
            price = book.css("p.price_color::text").extract_first()           
            yield {             
                "name": name,                
                "price": price,
            }        
        
        # 提取链接
        # 下一页的url在ul.pager>li.next>a里面
        next_url = response.css("ul.pager li.next a::attr(href)").extract_first()       
        # 如果找到下一页的url,得到绝对路径,构造新的response对象
        if next_url:
            next_url = response.urljoin(next_url)            
            yield scrapy.Request(next_url, callback=self.parse)

详细思路都在注释里。

上面爬虫源码不是我今天要说的重点,重点是我爬取完成之后存储为books.csv文件,打来CSV文件:

image

发现竟然每行数据之间都有空行,这可不行。该怎么办? 还是百度,强大的度娘!

于是我在百度上搜索:用scrapy存储为CSV文件存在空行怎么办?

image

已经有大神给出解决方案了:

image

我的exports.py文件所在的路径为:E:\Python\Lib\site-packages\scrapy

image

然后打开这个exports.py文件,按照那位大神指定的位置添加一句:newline=’’,

image

然后关闭,再次运行上面那个爬虫源码,存储为books1.csv文件,打开CSV文件:

image

哈哈,数据之间就没有空行了,perfect!

我举上面这个例子,想说明的是:遇到bug了不要慌张,善于利用百度,会让我们学习编程事半功倍。

其实学习编程就是一个不断踩坑再不断填坑的过程,学习之路上出现的每一个bug都是促进我们进步的动力。善于总结,等到我们踩的坑足够多的时候,也就具备了丰富的经验了。

相关文章

  • 学习编程的你,遇到了Bug该怎么办?

    这里我先回答标题的问题,答案就是:百度! 直接把错误提示复制在搜索栏,用百度搜索。如果没有现成的错误提示,只有模糊...

  • 如果

    如果你找到了别的公主 她没有我好 你该怎么办 她比我好 那我该怎么办 如果你找到了我 那你会很荣幸 因为我会陪着你...

  • 学习编程丨全网最全的C/C++编程学习顺序和书籍推荐,自学别错过

    自学或者学习C/C++编程不知道怎么办?那么恭喜你看到本文,本文将会为你提供C/C++编程的学习书籍顺序推荐,希望...

  • 教师结构化面试必备通关秘籍

    1.你教的学生很任性、不爱学习,该怎么办? 【结构化试题】 你教的学生很任性、不爱学习,该怎么办? 如果他很任性,...

  • 如果没有你

    没有了你,我该怎么办? 没有了你,我该怎么办? 没有了你,我该怎么办? 没有了你,我该怎么办? 没有了你,我该怎么...

  • 塔罗随笔

    #塔罗#【你说我该怎么办】 总有案主问我,我该怎么办?[疑问] 牌阵中你看到自己的问题了么? 看到了。 看到了就改...

  • 赵叔~聊编程-少儿编程

    很多家长都在徘徊是否让孩子学习少儿编程! 我认为要不要学,作为家长你首先要了解什么是编程?少儿该怎么学习?少儿该怎...

  • 家长们知不知道为什么学习儿童编程

    你知道为什么学习儿童编程吗?面对有些人对少儿编程的质疑,你还会继续选择让孩子学习编程吗?小编不知道家长们该如何选择...

  • 家长们知不知道为什么学习儿童编程

    你知道为什么学习儿童编程吗?面对有些人对少儿编程的质疑,你还会继续选择让孩子学习编程吗?小编不知道家长们该如何选择...

  • 孩子在学习中遇到挫折,父母怎样帮助》

    各位爱学习的爸爸。你看今天我们来讲第八节课,就是孩子在学习中遇到了挫折该怎么办? 关进了奥斯维辛集中...

网友评论

    本文标题:学习编程的你,遇到了Bug该怎么办?

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