04 2019 档案

摘要:线程是多任务编程方式之一,可以使用计算机的多核资源。 线程又称为轻量级的进程,在并发执行上和进程相同。但是一个进程中可以包含多个线程,这些线程共享线程的运行环境。 线程和进程的比较: 1 进程的创建开销大,而线程的创建开销小。 2 进程间的资源共享,只能通过进程间通信。而同一进程下线程间的资源共享, 阅读全文
posted @ 2019-04-27 23:34 噼里巴啦 阅读(238) 评论(0) 推荐(0)
摘要:ImagePipeline 使用scrapy框架我们除了要下载文本,还有可能需要下载图片,scrapy提供了ImagePipeline来进行图片的下载。 ImagePipeline还支持以下特别的功能: 1 生成缩略图:通过配置IMAGES_THUMBS = {'size_name': (width 阅读全文
posted @ 2019-04-26 21:22 噼里巴啦 阅读(4055) 评论(0) 推荐(0)
摘要:我们写代码会经常出现bug,有的人会使用断点调试器,但是设置这样的断点调试器是花时间的。 所以很多人会在可能出现错误的地方print打印来输出语句。 Pysooper的作用有点类似,你不必小心谨慎的使用print语句,只需要在想要调试的函数中引入一个装饰器。就可以得到函数的详细日志,包括运行了那些行 阅读全文
posted @ 2019-04-25 17:48 噼里巴啦 阅读(458) 评论(0) 推荐(0)
摘要:如何爬取一个网站的全站数据? 可以使用Scrapy中基于Spider的递归方式进行爬取(Request模块回调parse方法) 还有一种更高效的方法,就是基于CrawlSpider的自动爬取实现 CrawlSpider其实是Spider的一个子类,除了继承到Spider的特性和功能外,还派生出了自己 阅读全文
posted @ 2019-04-25 16:52 噼里巴啦 阅读(332) 评论(0) 推荐(0)
摘要:递归解析 在前面的例子里只是爬取了糗事百科热门的第一个页面,但是当我们需要爬取更多的页面时,需要对每个页面的url依次发起请求,然后通过解析的方法进行作者和标题的解析。 我们可以构建一个url列表,放进去所有页面的url,但是这样是不推荐的。 我们也可以通过requests的方法来手动解析,然后来使 阅读全文
posted @ 2019-04-24 12:11 噼里巴啦 阅读(239) 评论(0) 推荐(0)
摘要:scrapy简介 scrapy是一个用python实现为了爬取网站数据,提取结构性数据而编写的应用框架,功能非常的强大。 scrapy常应用在包括数据挖掘,信息处理或者储存历史数据的一系列程序中。 scrapy框架图 绿线是数据流向 Scrapy Engine(引擎):负责Spiders、Item 阅读全文
posted @ 2019-04-23 13:09 噼里巴啦 阅读(606) 评论(0) 推荐(0)
摘要:首先来看下要爬取的网站的页面 查看网页源代码:你会发现它是由js动态加载显示的 所以采用selenium+谷歌无头浏览器来爬取它 1 加载网站,并拖动到底,发现其还有个加载更多 2 模拟点击它,然后再次拖动到底,,就可以加载完整个页面 得到结果: 随意打开一个txt: Scrapy版 wangyi. 阅读全文
posted @ 2019-04-21 22:23 噼里巴啦 阅读(1192) 评论(0) 推荐(0)
摘要:图片懒加载技术 图片懒加载是一种网页优化技术。图片作为一种网络资源,在被请求时也与普通静态资源一样,将占用网络资源,而一次性将整个页面的所有图片加载完,将大大增加页面的首屏加载时间。为了解决这种问题,通过前后端配合,使图片仅在浏览器当前视窗内出现时才加载该图片,达到减少首屏图片请求数的技术就被称为“ 阅读全文
posted @ 2019-04-21 12:04 噼里巴啦 阅读(3806) 评论(0) 推荐(0)
摘要:BeautifulSoup是一个可以从HTML或者XML文件中提取数据的python库。它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式。 BeautfulSoup是python爬虫三大解析方法之一。 首先来看个例子: 这个beautiful对象可以按照标准的缩进结构输出。 接下来用 阅读全文
posted @ 2019-04-19 17:50 噼里巴啦 阅读(1620) 评论(0) 推荐(0)
摘要:xpath是一门在xml文档中查找信息的语言。xpath可以用来在xml文档中对元素和属性进行遍历。 在xpath中,有7中类型的节点,元素,属性,文本,命名空间,处理指令,注释及根节点。 节点 首先看下面例子: 上面的节点例子: 父:在上面的例子里,book是title,author,year,p 阅读全文
posted @ 2019-04-18 14:13 噼里巴啦 阅读(8597) 评论(0) 推荐(1)
摘要:爬虫的一般分为四步,第二个步骤就是对爬取的数据进行解析。 python爬虫一般使用三种解析方式,一正则表达式,二xpath,三BeautifulSoup。 这篇博客主要记录下正则表达式的使用。 正则表达式 . 匹配除“\n”之外的任何单个字符。 * 匹配前面的子表达式零次或者多次。 + 匹配前面的子 阅读全文
posted @ 2019-04-18 12:52 噼里巴啦 阅读(1148) 评论(0) 推荐(0)
摘要:什么是requests模块 了解爬虫的人都知道,爬虫总共分为四部分,发送请求,获取响应,解析数据,保存数据,发送请求可能是爬虫的起点,或者说是第一步,更是重点。 而requests模块是python中基于网络请求的模块,或者可以说是发送请求的模块,它通过模拟浏览器发起请求,虽然它的语法相对比较简单, 阅读全文
posted @ 2019-04-17 22:17 噼里巴啦 阅读(339) 评论(0) 推荐(0)
摘要:最近在学习python爬虫,看到网上有很多关于模拟豆瓣登录的例子,随意找了一个试了下,发现不能运行,对比了一下代码和豆瓣网站,发现原来是豆瓣网站做了修改,增加了反爬措施。 首先看下要模拟登录的网站: 打开开发者模式: 在账号和密码随意填入数据: 发现会发送一个post请求: ur是:https:// 阅读全文
posted @ 2019-04-17 12:32 噼里巴啦 阅读(2581) 评论(1) 推荐(0)
摘要:1 首先看下要抓取的页面 这是糗事百科里面的糗图页面,每一页里面有很多的图片,我们要做的就是把这些图片抓取下来。 2 分析网页源代码 发现源代码里面的每张图是这样储存的,所以决定使用正则匹配出图片的url,然后下载下来。 3 编写程序 3 查看爬取到的图片 一个很简单的小程序。 阅读全文
posted @ 2019-04-16 15:59 噼里巴啦 阅读(1005) 评论(0) 推荐(0)
摘要:bz2模块提供了使用bzip2算法压缩和解压缩数据一套完整的接口。 bz2模块包括: 用于读写压缩文件的open()函数和BZ2File类 用于一次性压缩和解压缩的compress() 和 decompress() 函数 用于增量压缩和解压的 BZ2Compressor 和 BZ2Decompres 阅读全文
posted @ 2019-04-15 11:32 噼里巴啦 阅读(6366) 评论(0) 推荐(0)
摘要:9 第九关 是一张图,上面有很多的黑点,查看网页源代码发现了上一关的提示: 还发现了一大串的数字 感觉又是一个使用PIL库进行图像处理的题,百度后知道要将这些点连接起来并重新画图。但是不能在原始图上修改,我们应该重新画图并进行修改。 编写代码: 得到图像: 图像上是个牛,就是英文的bull 那么第十 阅读全文
posted @ 2019-04-14 23:33 噼里巴啦 阅读(272) 评论(0) 推荐(0)
摘要:PIL(Python Image Library)是python的第三方图像处理库,PIL的功能非常的强大,几乎被认定是Python的官方图像处理库了。 由于PIL仅支持到python2.7于是一群志愿者在PIL的基础上创建了兼容的版本,名字叫Pillow,支持最新的python3,而且扩容了很多特 阅读全文
posted @ 2019-04-12 21:52 噼里巴啦 阅读(18168) 评论(1) 推荐(0)
摘要:1 简述 zip文件是一个常用的归档和与压缩标准。 zipfile模块提供了创建、读取、写入、添加及列出zip文件的工具。 zipfile里有2个非常常用的class,分别是Zipfile和ZipInfo,在绝大多数情况下,我们只需要使用这2个class就可以了。 Zipfile是主要的类,用于创建 阅读全文
posted @ 2019-04-12 13:13 噼里巴啦 阅读(679) 评论(0) 推荐(0)
摘要:1 概念 pickle是python语言的标准模块,安装python后以包含pickle库,不需要再单独安装。 pickle提供了一种简单的持久化功能,可以将对象以文件的形式存放在磁盘上。 pickle模块用于实现序列化和反序列化。 pickle模块是以二进制的形式序列化后保存到文件中(保存文件的后 阅读全文
posted @ 2019-04-11 18:07 噼里巴啦 阅读(8328) 评论(0) 推荐(0)
摘要:0 第零关 2**38 = 274877906944 下一关的url:http://www.pythonchallenge.com/pc/def/274877906944.html 1 第一关 移位计算,可以看出来是移动2位 得到答案: 第二关url:http://www.pythonchallen 阅读全文
posted @ 2019-04-10 23:05 噼里巴啦 阅读(433) 评论(0) 推荐(0)
摘要:最近想研究下python爬虫,于是就找了些练习项目试试手,熟悉一下,猫眼电影可能就是那种最简单的了。 1 看下猫眼电影的top100页面 分了10页,url为:https://maoyan.com/board/4?offset=0 我们发起请求,得到相应: 我们 我使用的是requests库,这是一 阅读全文
posted @ 2019-04-09 23:13 噼里巴啦 阅读(1921) 评论(0) 推荐(0)
摘要:概念 协程,英文为coroutine,又称微线程,纤程,是一种用户态的轻量级线程。 子程序,或者称为函数,在所有语言中都是层级调用,比如A调用B,B在执行过程中又调用了C,C执行完毕返回,B执行完毕返回,最后是A执行完毕。 所以子程序是通过栈实现的,一个线程就是执行一个子程序。 子程序的调用总是一个 阅读全文
posted @ 2019-04-02 19:09 噼里巴啦 阅读(338) 评论(0) 推荐(0)
摘要:由于GIL全局解释器锁的存在,意味着在任何一个时刻,只有一个线程处于执行状态。 (1)执行栈: 因为python是单线程的,同一时间只能执行一个方法,所以当一系列的方法被依次调用的时候,python会先解析这些方法,把其中的同步任务按照执行顺序排队到一个地方,这个地方叫做执行栈。 (2)事件队列(任 阅读全文
posted @ 2019-04-01 23:00 噼里巴啦 阅读(5346) 评论(1) 推荐(1)
摘要:1 性能: 解析下面代码慢在哪里def strtest1(num):str='first'for i in range(num):str+="X"return str解析:python中str是一个不可变类型,每次迭代,都会生成一个新的str来储存对象,当num特别大的时候,就会创建很多的str,所 阅读全文
posted @ 2019-04-01 18:55 噼里巴啦 阅读(431) 评论(0) 推荐(1)
摘要:asyncio是Python 3.4版本引入的标准库,直接内置了对异步IO的支持。 asnycio是用来编写并发代码的库,python3.5以后使用async/await语法。 asyncio 被用作多个提供高性能 Python 异步框架的基础,包括网络和网站服务,数据库连接库,分布式任务队列等等。 阅读全文
posted @ 2019-04-01 14:26 噼里巴啦 阅读(751) 评论(0) 推荐(0)