前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >学习编程的你,遇到了Bug该怎么办?

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

作者头像
爱吃西瓜的番茄酱
发布2018-04-03 17:45:49
7190
发布2018-04-03 17:45:49
举报

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

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

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

举个栗子吧:

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

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

代码语言:javascript
复制
pip install scrapy

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

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

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

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

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

把pywin32安装好了之后,再来

代码语言:javascript
复制
pip install scrapy

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

然后就可以用scrapy愉快的学习爬虫了,于是我迫不及待用专供爬虫初学者训练爬虫技术的网站(http://books.toscrape.com)来练练手:

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

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

代码语言:javascript
复制
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文件:

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

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

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

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

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

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

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

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

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

每天学习一点点,每天进步一点点。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-11-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小白客 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档