案例:多线程爬虫

目标:爬取糗事百科段子,待爬取页面URL:http://www.qiushibaike.com/8hr/page/1

要求:

使用requests获取页面信息,用XPATH/re 做数据提取

获取每个帖子里的 用户头像链接、用户主页、用户名、用户性别、用户年龄、段子内容、点赞次数、评论次数

保存到本地json文件内

采用多线程

queue(队列对象)

queue是python中的标准库,可以直接import queue引用,队列是线程间最常用的交换数据的形式

python下多线程:

对于资源,加锁是个重要的环节。因为python原生的list, dict等,都是not thread safe的。而queue,是thread safe(线程案例)的,因此在满足使用条件下,建议使用队列

初始化:class queue.Queue(maxsize) FIFO(先进先出)

常用方法:

queue.Queue.qsize() 返回队列的大小

queue.Queue.empty() 如果队列为空,返回True,反之返回False

queue.Queue.full() 如果队列满了,返回True,反之返回False

queue.Queue.get([block[, timeout]]) 从队列中取出一个值,timeout为等待时间

创建一个“队列”对象

import queue

myqueue = queue.Queue(maxsize = 10)

将一个值放入队列中

myqueue.put(10)

将一个值从队列中取出

myqueue.get()


本文转载:CSDN博客