摘要:
本文主要介绍如何在Linux平台上部署Django相关项目,关于Django项目的部署在互联网论坛上有很多的资料,笔者在查阅众多资料并经过实践后发现结果并不如意(或多或少总是遇到一些问题,往往与资料的预期不相符)。在浏览了许多资料后笔者整理得出了部署Django项目的一般性方法,部署的方法有很多种, 阅读全文
摘要:
在上一篇笔记《Ajax数据爬取简介》中我们提到,在爬取动态渲染页面的数据时(通常为Ajax),我们可以使用AJAX URL分析法和Selenium模拟浏览器行为两种方法,其中前者已经分析一般思维已叙述,在本节中我们主要介绍如何使用Selenium模拟浏览器行为来获取数据。 一、准备工作 在正式介绍使 阅读全文
摘要:
有时候在我们设计利用requests抓取网页数据的时候,会发现所获得的结果可能与浏览器显示给我们的不一样:比如说有的信息我们通过浏览器可以显示,但一旦用requests却得不到想要的结果。这种现象是因为我们通过requests获得的都是HTML源文档,而浏览器中见到的页面数据都是经过JavaScri 阅读全文
摘要:
在本节实践中,我们将借助Python多线程编程并采用生产者消费者模式来编写爬取Bing每日壁纸的爬虫。在正式编程前,我们还是一样地先来分析一下我们的需求及大体实现的过程。 总体设计预览 首先,我们先来看一下第三方提供的Bing壁纸网站http://bing.plmeizi.com/。在这一个网站中保 阅读全文
摘要:
Queue线程安全队列在Python多线程编程中,虽然threading模块为我们提供了Lock类和Condition类借助锁机制来处理线程并发执行,但在实际开发中使用加锁和释放锁仍是一个经常性的且较为繁琐的过程。因此,Python中又为我们提供了一个使用起来更为简单的模块——queue模块。queue模块是一个线程安全的模块(线程安全——即不存在共享变量访问冲突问题),该模块提供了同步的、线程安... 阅读全文
摘要:
在多线程编程中,最经典的模式是生产者消费者模式。其中,生产者是专门用来生产数据的线程,它把数据存放在一个中间变量中;而消费者则从这个中间变量取出数据进行消费。由于生产者和消费者共享中间变量,这些变量大多是全局的,因此需要使用锁来保证数据完整性,防止多线程共享问题的产生。 Python threadi 阅读全文
摘要:
多线程简介 多线程,即允许程序多个线程并发地执行。多线程是为了同步完成多项任务,借助提高资源使用效率来提高系统的效率。最简单的比喻多线程就像火车的每一节车厢,而进程则是火车。车厢离开火车是无法跑动的,同理火车也不可能只有一节车厢。多线程的出现就是为了提高效率。[源自百度百科:多线程] threadi 阅读全文
摘要:
上一篇学习笔记8-1中介绍了MySQL和MongoDB的安装、启动和配置,本节我们接着学习有关MongoDB的一些概念、基本操作和在python中的使用。 MongoDB常用概念 为更好地了解MongoDB地概念,下表以SQL术语进行对照说明。 MongoDB三元素 在MongoDB中有数据库、集合 阅读全文
摘要:
之前学习的JSON和CSV两种数据存储方式,都是基于文件的存储,有时候运用起来或许不是那么方便,为此本节来介绍基于数据库管理的存储方式。在日常工作中,常用的数据库分为关系型数据库和非关系型数据库。 关系型数据库 关系型数据库是基于关系模型的数据库,而关系模型是通过二维表来保存的,即其存储方式是由若干 阅读全文
摘要:
CSV文件简介 CSV(Comma-Separated Values,逗号分隔值),是一种纯文本形式存储表格数据的文件。该文件由任意数目的记录组成,每条记录被分隔符分隔为字段(最常见的分隔符是逗号或制表符),且每条记录都有相同的字段序列,因此csv相当于一个结构化表的纯文本形式。从直观上看,它比Ex 阅读全文