美文网首页
多线程爬虫

多线程爬虫

作者: a荷包蛋 | 来源:发表于2018-08-14 15:13 被阅读0次

1、多线程爬虫,可考虑放到线程池,把我们需要解析的URL 地址存入我们的队列中,然后去触发多线程进行操作、

代码如下

class BaiDuT:

#获取URL

    def __init__(self):

self.Lock=threading.Lock()

#创建一个线程池

        self.url_queue=queue.Queue()

for iin range(1,21):

url_spider="https://tieba.baidu.com/f?kw=文字控&ie=utf-8&pn="+str(i*50)

self.url_queue.put(url_spider)

print(self.url_queue.queue)

def spider(self):

while self.url_queue.qsize()>0:

#我们对可能出现冲突的地方上锁

            if self.Lock.acquire():

url=self.url_queue.get()

print('剩余数量:%s;处理的线程编号:%s'%(self.url_queue.qsize(),threading.current_thread().name))

#写具体的爬虫代码

                self.Lock.release()

if __name__ =='__main__':

c=BaiDuT()

my_thread=[]

for iin range(0,3):

thread2=threading.Thread(target=c.spider)

thread2.start()

my_thread.append(thread2)

for tin my_thread:

t.join()

中间有可能会出现资源冲突的问题,所以这个时候我们应该加锁,防止此类问题。

锁分为两种:lock  Rlock  这里有一篇比较好的文章,大家可以参考一下。

https://blog.csdn.net/karchar/article/details/52372702

相关文章

  • Python爬虫第七天:多线程爬虫|Scrapy框架

    内容简述: 一:多线程爬虫 二:Scrapy框架 一:多线程爬虫原理 【示例见代码】 二:Scrapy框架...

  • Python爬虫基础教程(三)

    九、多线程爬虫 9.1利用多线程爬虫爬取糗事百科的资源: 十、爬虫代码总结: 要实现一个完整的爬虫,无外乎4...

  • 「爬虫」12爬虫之多线程爬虫

    1.多线程爬虫 多线程就是程序中的某些程序段并行执行,合理地设置多线程,可以让爬虫效率更高。 2.单线程实例 以爬...

  • Thread

    队列 线程锁 多线程,线程池 队列 多线程爬虫示例 多线程 自定义线程 线程池

  • [CP_12] Python多线程爬虫应用实践(社招职位名称获取

    目录结构 一、多线程爬虫的使用 1. 多线程实现 <关联> [Pt_04] Python进程|多进程|线程|多线程...

  • 爬虫基础05

    多线程爬虫 队列(from multiprocessing import Queue)UrlQueue = Que...

  • 男子大学生的無駄日常

    关键词:Python,爬虫,requests,BeautifulSoup,opencv,python多线程,正则表...

  • 多线程爬虫实战——爬取糗事百科

    多线程爬虫思路 我们之前写的爬虫网页,往往是等待一页内容爬取完毕后,再爬取另一页内容,效率很低,而用多线程和队列之...

  • 多线程爬虫

    1、多线程爬虫,可考虑放到线程池,把我们需要解析的URL 地址存入我们的队列中,然后去触发多线程进行操作、 代码如...

  • 多线程爬虫

    多线程爬虫 有些时候,比如下载图片,因为下载图片是一个耗时的操作。如果采用之前那种同步的方式下载。那效率肯会特别慢...

网友评论

      本文标题:多线程爬虫

      本文链接:https://www.haomeiwen.com/subject/onlvbftx.html