并且可以导出到csv文件查看。
复制粘贴运行即可。

2019年8月11日测试可用

import requests,threading,csv
from lxml import etree
from queue import Queueclass MYSpider(threading.Thread):headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36'}def __init__(self,page_queue,joke_queue,*args,**kwargs):super(MYSpider, self).__init__(*args, **kwargs)self.joke_queue = joke_queueself.page_queue = page_queueself.base_domain = 'http://www.budejie.com'def run(self):while True:if self.page_queue.empty():breakurl = self.page_queue.get()response = requests.get(url,headers=self.headers)html=etree.HTML(response.content.decode('utf-8'))descs = html.xpath("//div[@class='j-r-list-c-desc']")for desc in descs:jokes = desc.xpath(".//text()")joke = "\n".join(jokes).strip()link = self.base_domain + desc.xpath(".//a/@href")[0]self.joke_queue.put((joke, link))print('=' * 30 + "第%s页下载完成!" % url.split('/')[-1] + "=" * 30)class MYWriter(threading.Thread):headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36'}def __init__(self,joke_queue,writer,gLock,*args,**kwargs):super(MYWriter, self).__init__(*args, **kwargs)self.joke_queue = joke_queueself.writer = writerself.lock = gLockdef run(self):while True:try:joke, link = self.joke_queue.get(timeout=6)self.lock.acquire()self.writer.writerow((joke,link))self.lock.release()print("保存一条")except:print("终止")breakdef main():page_queue = Queue(10)joke_queue = Queue(500)gLock = threading.Lock()fp=open('bsbdj.csv','a',newline='',encoding='utf-8-sig')writer = csv.writer(fp)writer.writerow(('content','link'))for x in range (1,11):url = 'http://www.budejie.com/text/%d'%xpage_queue.put(url)for x in range(5):t = MYSpider(page_queue, joke_queue)t.start()for x in range(5):t = MYWriter(joke_queue, writer, gLock)t.start(name="写进程%d"%x)if __name__== '__main__':main()

运行截图:

python 多线程爬取 百思不得姐段子相关推荐

  1. python多线程爬取斗图啦数据

    python多线程爬取斗图啦网的表情数据 使用到的技术点 requests请求库 re 正则表达式 pyquery解析库,python实现的jquery threading 线程 queue 队列 ' ...

  2. Python 多线程爬取西刺代理

    西刺代理是一个国内IP代理,由于代理倒闭了,所以我就把原来的代码放出来供大家学习吧. 镜像地址:https://www.blib.cn/url/xcdl.html 首先找到所有的tr标签,与class ...

  3. python多线程爬取妹子图

    python多线程爬取妹子图 python使用版本: 3.7 目的: 自己选择下载目录,逐个将主题图片保存到选定目录下. 效果: 一秒钟左右下载一张图片,下了七八十组图片暂时没什么问题,不放心的话,可 ...

  4. python多线程爬取ts文件并合成mp4视频

    python多线程爬取ts文件并合成mp4视频 声明:仅供技术交流,请勿用于非法用途,如有其它非法用途造成损失,和本博客无关 目录 python多线程爬取ts文件并合成mp4视频 前言 一.分析页面 ...

  5. python多线程爬取多个网址_【Python爬虫】多线程爬取斗图网站(皮皮虾,我们上车)...

    原标题:[Python爬虫]多线程爬取斗图网站(皮皮虾,我们上车) 斗图我不怕 没有斗图库的程序猿是无助,每次在群里斗图都以惨败而告终,为了能让自己在斗图界立于不败之地,特意去网上爬取了斗图包.在这里 ...

  6. 斗图斗不过小伙伴?python多线程爬取斗图网表情包,助你成为斗图帝!

    最近python基础课讲到了多线程,老师让交个多线程的实例练习.于是来试试多线程爬虫,正好复习一下mooc上自学的嵩天男神的爬虫知识.想法很美好,过程却很心酸,从早上开始写,每次出现各种奇怪问题,到现 ...

  7. Python多线程爬取斗图啦表情包

    斗图啦表情包多线程爬取-撸代码 首先快速的导入我们需要的模块,和其他文章不同,我把相同的表情都放在了同一个文件夹下面,所以需要导入os模块 import asyncio import aiohttp ...

  8. Python多线程爬取行行网电子书

    行行网电子书多线程爬取-撸代码 代码非常简单,有咱们前面的教程做铺垫,很少的代码就可以实现完整的功能了,最后把采集到的内容写到 csv 文件里面,(csv 是啥,你百度一下就知道了) 这段代码是IO密 ...

  9. Python多线程爬取表情包,代码都放在最后了

    文章目录 一.写在前面 二.步骤解析 三.效果展示 一.写在前面 从老马的两大聊天软件,到其它的各种软件,表情包一直都是中国互联网用户的「心头好」,时至今日,表情包已然成为必不可少的聊天方式. 无论是 ...

最新文章

  1. es6 工作中常用总结
  2. 周期串java_求最小周期串
  3. mysql 删除 修改数据库语句_数据库——添加,修改,删除
  4. C语言与sqlserver数据库
  5. python多维数组运用_使用Python将文件读入多维数组
  6. hive入ES5.6.8
  7. 递归和循环两种方式求解连续数的相加
  8. 复习-arrary和arraylist的对比以及arraylist的遍历中删除的原理
  9. Description: Field smsClient in com.atguigu.gmall.pms.service.impl.SpuServiceImpl required a bean o
  10. JavaWeb = jQuery使用详解
  11. vue中reject与provide使用
  12. 【NLP】动手实现一个句子生成器
  13. 基于控制的角度无人机集群——避障(有源代码)
  14. 非酒精性脂肪性肝炎潜在治疗靶点及药物研究进展
  15. RDLC报表横向放纸不能横向打印问题解决
  16. 炉石一键拔网线_炉石传说拔网线插件
  17. 会话及会话技术、Cookie对象、Session对象 详解
  18. SQL Developer | MySQL
  19. 如有定义int a=128; 则输出语句printf(“%o”,a);的输出结果为?。
  20. Appium v1.22.0版本下Appium Inspector的下载安装

热门文章

  1. 网站关键词布局定位分析,如何准确定位我们需要的网站关键词?
  2. Java 多线程 并发 锁 Java线程面试题
  3. 门面模式(Facade模式)详解
  4. getattr 函数详讲
  5. [附源码]Java计算机毕业设计SSMjspm计算机学院党员积分管理系统
  6. 服务器03系统 打印机,win 2003下如何配置打印服务器及打印机
  7. Oracle 清空表的方式
  8. java时间戳转换日期格式_Java 13位时间戳转换日期格式
  9. 小程序页面之间数据传递的五种方法
  10. 最详细的【微信小程序+阿里云Web服务】开发部署指引(十二):开发小程序用户反馈功能