学习python的第八天 多线程爬虫

多线程爬虫

学习python的第八天(2020.04.13)

在掌握了requests和正则表达式以后,我爬取了自己写的博客,很简单,但是,我用的爬虫的进程只有一个进程,一个线程,因此称为单线程爬虫。单线程爬虫每次只能访问一个页面,不能充分利用计算机的网络带宽。所以就浪费了很多时间。如果可以让爬虫同时访问10个网页,就相当于爬取速度提高了10倍。为了达到这个目的,就需要使用多线程技术了。
爬虫属于I/O密集型程序,所以使用多线程可以大大提高爬取率。
multiprocessing本身是python的多进程库,用来处理与多进程相关的操作。
今日任务:

使用单线程和多线程访问相同网页80次,并记录他们的访问时间

代码如下
#coding:utf-8
#coding:GBK
import requests
import time
from multiprocessing.dummy import Pool
#创建一个自定义函数,用来偷懒写requests获取网页
def query(url):
    requests.get(url)
#单线程访问网页代码如下
start =time.time()
for i in range(80):
    query('http://www.baidu.com')
end =time.time()
print("单线程访问百度80次时间为:",end-start)
#多线程访问网页代码如下
url_list=[]
start =time.time()
for i in range(80):
    url_list.append('http://www.baidu.com')
pool =Pool(6)
pool.map(query,url_list)
end =time.time()
print("多线程访问百度80次时间为:",end-start)

运行结果

在这里插入图片描述

小小说明

理论上看这多线程访问时间少,其实不然,他只是用了6个进程同时进行访问,所以花的时间其实很多,cpu读写多用了。
今天内容很少,但是( •̀ ω •́ )y要牢记单线程和多线程的知识点,一定要灵活使用。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值