摘要: xpath是一种表达式语言,主要是为了在xml文档节点树中定位节点所设计的,它的返回值可能是节点,节点结合,原子值以及它们的混合等。需要注意的是,xml中是严格的树结构,任意标签都需要有结束标记。在爬虫工作中中,很多时候可以通过使用xpath查找xml文件,从而查找需要的元素。 首先需要了解最常用的 阅读全文
posted @ 2018-04-06 21:05 cj陈杰 阅读(157) 评论(0) 推荐(0) 编辑
摘要: urllib2库是python中自带的用来进行网络抓取的库,在python3中 urllib2库被改为urllib.request urllib2中常用方法: 1.urlopen :向指定服务器发送请求,并返回服务器相应的类文件对象 2.request:当需要增加http报头等较复杂的操作的时候,创 阅读全文
posted @ 2018-04-03 22:25 cj陈杰 阅读(113) 评论(0) 推荐(0) 编辑
摘要: FIddler是一款强大的web调试工具,它能记录素有的客户端和服务器的http请求,合理的使用它,可以在做爬虫时,使用Fiddler可以大大的减少工作的复杂性。 使用Fiddler首先需要进行配置 打开工具栏->Tools->Fiddler Options->HTTPS, 选中Capture HT 阅读全文
posted @ 2018-04-03 22:10 cj陈杰 阅读(111) 评论(0) 推荐(0) 编辑
摘要: POST与GET请求 阅读全文
posted @ 2018-04-01 23:09 cj陈杰 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 最近在使用Django最新版是,经常报错,发现大部分是Django-2.0.3和之前版本的小改动之处 1.配置mysql数据库 : SET storage_engine=INNODB 改为 SET default_storage_engine=INNODB ForergnKey()中的on_dele 阅读全文
posted @ 2018-03-21 00:07 cj陈杰 阅读(82) 评论(0) 推荐(0) 编辑
摘要: 在python同步编程部分,需要分析和思考多个线程之间同步互斥问题,因此pv操作和信号量作为基础和重中之重,特此回顾pv操作和信号量。 PV操作由P操作原语和V操作原语组成(原语即不可在分割的操作),对信号量(大部分是cpu等资源)进行操作,具体定义如下: P(S): ①将信号量S的值减1,即S=S 阅读全文
posted @ 2018-03-16 17:32 cj陈杰 阅读(1493) 评论(0) 推荐(0) 编辑
摘要: 最近通过python实现2048小游戏的开发,在开发过程中遇到了一些问题,发现了自己的不足之处,特此进行简单的反思。 一.状态机: 状态机是表示有限个状态以及这些状态之间转移和动作等行为的数学模型,状态机的最常见表示即:当前状态(b)+事件(y)的组合之处下一个状态(c),2048下游戏的主逻辑就可 阅读全文
posted @ 2018-03-14 22:33 cj陈杰 阅读(718) 评论(0) 推荐(0) 编辑
摘要: 资源总是有限的,程序运行如果对同一个对象进行操作,则有可能造成资源的争用,甚至导致死锁,或者导致读写混乱,python中提供线程锁对线程的调用进行控制 锁提供如下方法: 1.Lock.acquire([blocking]) 2.Lock.release() 把 3.threading.Lock() 阅读全文
posted @ 2018-03-14 21:06 cj陈杰 阅读(155) 评论(0) 推荐(0) 编辑
摘要: GIL :全局解释器,每个进程只能一个cpu 因为有GIL ,所以同一时刻,只有一个线程被cpu执行 GIL是在线程上加的锁。 一个进程跑多个线程 python是不可能的 解决方法: 1.多个任务放到多个进程处理,muiltprocess模块 但是进程开销大 2.多进程+协程,最好的解决的方法为了解 阅读全文
posted @ 2018-03-14 17:39 cj陈杰 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 在python编程中,一般可以通过使用socketserver简化操作并实现并发操作。socketserver实际上是对socket的再封装,在基于tcp的编程中主要是两个循环:1.链接循环,2.通讯循环。链接循环负责tcp的四次握手,建立服务器端和客户端的通信通道,通讯循环负责client端和se 阅读全文
posted @ 2018-03-10 12:19 cj陈杰 阅读(154) 评论(0) 推荐(0) 编辑