案例:多线程爬虫

目标:爬取糗事百科段子,待爬取页面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()

python多线程糗事百科案例相关推荐

  1. 爬虫——多线程糗事百科案例

    Queue(队列对象) Queue是python中的标准库,可以直接import Queue引用;队列是线程间最常用的交换数据的形式 python下多线程的思考 对于资源,加锁是个重要的环节.因为py ...

  2. 多线程糗事百科案例(python2)

    Queue(队列对象) Queue是python中的标准库,可以直接import Queue引用;队列是线程间最常用的交换数据的形式 python下多线程的思考 对于资源,加锁是个重要的环节.因为py ...

  3. python3多线程实例_python3多线程糗事百科案例

    1 #使用了线程库 2 importthreading3 #队列 4 importqueue5 #解析库 6 from lxml importetree7 #请求处理 8 importrequests ...

  4. 正则表达式re模式(python爬虫糗事百科热点段子)

    python编程快速上手(持续更新中-) python爬虫从入门到精通 文章目录 python编程快速上手(持续更新中-) python爬虫从入门到精通 非结构化数据与结构化数据提取 概述 非结构化的 ...

  5. python爬虫糗事百科

    #coding:utf-8 import urllib2 import re # 工具类 class Tools(object):remove_n = re.compile(r'\n')replace ...

  6. (python)查看糗事百科文字 点赞 作者 等级 评论

    import requests import re headers = { 'User-Agent':'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6. ...

  7. Python爬虫实战糗事百科实例

    爬取糗事百科段子,假设页面的URL是 http://www.qiushibaike.com/8hr/page/1 要求: 使用requests获取页面信息,用XPath / re 做数据提取 获取每个 ...

  8. python爬虫案例——糗事百科数据采集

    全栈工程师开发手册 (作者:栾鹏) python教程全解 python爬虫案例--糗事百科数据采集 通过python实现糗事百科页面的内容采集是相对来说比较容易的,因为糗事百科不需要登陆,不需要coo ...

  9. Python爬虫 基于Beautiful Soup的糗事百科爬虫

    python爬虫 ---- 糗事百科爬虫 首先进入糗事百科官网首页 -> 糗事百科 本次爬虫的目标是翻页爬取糗事百科的信息,包括 标题, 链接, 作者名, 好笑数&评论数 之后右键检查, ...

最新文章

  1. Android studio 真机联调闪退
  2. mysql 实现yyyyww_java – LocalDate无法使用’yyyy’解析’ww’
  3. 封神召唤师显示服务器爆满,封神召唤师总是显示无法连接网络
  4. MemoryStream的一些问题
  5. 运营资源很少的时候,怎么运营自己的产品(完结)
  6. c++ multimap的几个insert插入元素简单例子
  7. Python_str 的内部功能介绍
  8. Depth-first Search深度优先搜索专题7
  9. 企业级网络建站工作室源码
  10. django-连接数据库mysql
  11. weex android app例子,weex中修改android app图标和欢迎页
  12. awk '/#BEGIN/,/#END/{next}1' 1是什么意思?-转
  13. 【动态规划笔记】状压dp:蓝桥 矩阵计数 (二进制枚举)
  14. php 科学计数加1,PHP采用超长(超大)数字运算防止数字以科学计数法显示的方法_php技巧...
  15. 使用色彩追踪和形态学运算得到图像中感兴趣区域
  16. Mysql,phpmyadmin密码忘了怎么办
  17. Unity3D 渲染管线全流程解析
  18. FFPlay命令入门教程
  19. 深入了解Element Form表单动态验证问题
  20. 从建立技能库到培养良好习惯,这里有给职场年轻人的10条建议。

热门文章

  1. matlab的函数库,matlab函数库大全
  2. python中input是什么_Python中input函数的用法是什么?_后端开发
  3. 【python】The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all
  4. 通过注册表设置VMware Horizon View Client SSL配置
  5. Java培训完能不能就业?
  6. 星际争霸2 微操练习 地图
  7. Hungry Rabbit
  8. 计算机u盘驱动坏了如何的修复,U盘识别不了,小编教你U盘识别不了怎么修复
  9. mybatis spring springMVC
  10. Unity大魔王私藏的开发2D游戏的常用插件合集