• 更深入的理解 Python 中的迭代

    Posted by : lon.y@qq.com on 2018年5月28日

    深入探讨 Python 的 for 循环来看看它们在底层如何工作,以及为什么它们会按照它们的方式工作。 Python 的 for 循环不会像其他语言中的 for 循环那样工作。在这篇文章中,我们将深入探讨 Python 的 for 循环来看看它们在底层如何工作,以及为什么它们会按照它们的方式工作。 循环的问题 我们将通过看一些“陷阱”开始我们的旅程,在我们了解循环如何在 Python 中工作之后,我们将再次看看这些问题并解释发生了什么。 问题 1:循环两次

    阅读全文...

  • 6 个 Python 的日期时间库

    Posted by : lon.y@qq.com on 2018年5月26日

    曾几何时,我们中的一个人(Lacey)盯了一个多小时的 Python 文档中描述日期和时间格式化字符串的表格。当我试图编写从 API 中将日期时间字符串转换为 Python datetime 对象时,我很难理解其中的特定部分,因此我决定请求帮助。 有人问道:“为什么你不使用 dateutil 呢?” 读者,如果你没有从这个月的 Python 专栏中获得任何东西,只是学习到有比 datetime 的 strptime 更容易地将 datetime 字符串转换

    阅读全文...

  • Python 项目可以有多大

    Posted by : lon.y@qq.com on 2018年5月23日

    总是看到有人说,动态一时爽,重构火葬场。然而这世界上有的是著名的开源项目, 也有像 Github、Instagram 这样流量巨大的知名网站是基于动态语言开发的,经过了这么多年重构,也未听说哪个作者进了火葬场的,不明白这些人是真的不知道还是装作看不见呢?不过他们说动态语言大到一定程度就无法维护,虽然这话也同样不值一驳,不过也提醒了我,我也很好奇用动态语言开发的项目规模能大到什么程度。 从我知道的信息看,用动态语言开发的最大规模的项目可能要算是 OpenSt

    阅读全文...

  • 使用交互式 shell 来增强你的 Python

    Posted by : lon.y@qq.com on 2018年5月22日

    Python 编程语言已经成为 IT 中使用的最流行的语言之一。成功的一个原因是它可以用来解决各种问题。从网站开发到数据科学、机器学习到任务自动化,Python 生态系统有丰富的框架和库。本文将介绍 Fedora 软件包集合中提供的一些有用的 Python shell 来简化开发。 Python Shell Python Shell 让你以交互模式使用解释器。这在测试代码或尝试新库时非常有用。在 Fedora 中,你可以通过在终端会话中输入 python3

    阅读全文...

  • 5 个用 Python 编写非阻塞 web 爬虫的方法

    Posted by : lon.y@qq.com on 2018年5月21日

    大家在读爬虫系列的帖子时常常问我怎样写出不阻塞的爬虫,这很难,但可行。通过实现一些小策略可以让你的网页爬虫活得更久。那么今天我就将和大家讨论这方面的话题。 用户代理 你需要关心的第一件事是设置用户代理。 用户代理是用户访问的工具,并告知服务器用户正在使用哪个网络浏览器访问网站。 如果未设置用户代理,许多网站不会让你查看内容。 如果你正在使用rquests库,可以执行如下操作: headers = { 'user-agent': 'Mozilla/5.0 (

    阅读全文...

  • 爬取豆瓣短评之《后来的我们》

    Posted by : lon.y@qq.com on 2018年5月18日

    《后来的我们》上映了,或许大家有点小期待吧。毕竟,影片的主题曲《我们》,早就虐哭了不少人。电影能否跟歌曲一样深入人心?怀着这样的一种心情,下面就来看一下它的影评如何吧。 1.抓数据 通过试探知道:豆瓣影评设置权限,没有登陆的话,只能够看到前面的几十条短评,并且登录的时候需要输入验证码。所以考虑使用selenium来获取数据。 登录时需要的验证码,通过保存图片,然后手动输入 所以构造两个方法 # 登录 def login(url,username,passw

    阅读全文...

  • 手把手教你写网络爬虫(7):URL去重

    Posted by : lon.y@qq.com on 2018年5月15日

    本期我们来聊聊URL去重那些事儿。以前我们曾使用Python的字典来保存抓取过的URL,目的是将重复抓取的URL去除,避免多次抓取同一网页。爬虫会将待抓取的URL放在todo队列中,从抓取到的网页中提取到新的URL,在它们被放入队列之前,首先要确定这些新的URL是否被抓取过,如果之前已经抓取过了,就不再放入队列。 有别于单机系统,在分布式系统中,这些URL应该存放在公共缓存中,才能让多个爬虫实例共享,我们继续使用Redis缓存这些数据。URL既可以存储在R

    阅读全文...

  • 手把手教你写网络爬虫(6):分布式爬虫

    Posted by : lon.y@qq.com on 2018年5月15日

    下面是一个超级计算机的排行榜,如果我们能拥有其中任意一个,那么我们就不需要搞什么分布式系统。可是我们买不起,即使买得起,也交不起电费,所以我们只好费脑子搞分布式。 Rank System Cores Rmax Rpeak Power (kW) 1 Tianhe-2  China 3,120,000 33,862.7 54,902.4 17,808 2 Titan  US 560,640 17,590.0 27,112.5 8,209 3 Sequoia  

    阅读全文...

  • 手把手教你写网络爬虫(8):彻底解决乱码问题

    Posted by : lon.y@qq.com on 2018年5月15日

    字符编解码是爬虫里必学的一项知识,在我们的爬虫生涯中早晚会爬到乱码的网页,与其遇到时惊慌失措,不如早学早好,彻底避免乱码问题。 字符编码简介 什么是字符集 在介绍字符编码之前,我们先了解下什么是字符集。 字符(Character)是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。字符集(Character set)是多个字符的集合,字符集种类较多,每个字符集包含的字符个数不同,常见字符集:ASCII字符集、GBK字符集、Unicode字符

    阅读全文...

  • 用 Plumbum 开发 Python 命令行工具

    Posted by : lon.y@qq.com on 2018年5月11日

    摘要:本文翻译自 Python Plumbum 开源库的官方文档 Plumbum CLI 部分,主要介绍如何使用 Plumbum CLI 工具包来开发 Python 命令行应用程序,这是一个非常 Pythonic、容易使用、功能强大的工具包,非常值得广大 Python 程序员掌握并使用。 轻松执行程序的另一方面是轻松编写 CLI 程序。Python 脚本一般使用 optparse 或者最新的 argparse 及其衍生品来开发命令行工具,但是所有这些表现力

    阅读全文...