python小白学习记录 多线程爬取ts片段

from lxml import etree
import requests
from urllib import request
import time
import os
from queue import Queue
import threading
import re
from multiprocessing import pool
from urllib import request
def download(urls):
    for index in range(0,1342):
        n = index
        if(index<=999):
            n = str(n).zfill(3)
        else:
            n = str(n)
        # print(n)
        url = "https://zy.512wx.com/20171106/vM1OOVna/1200kb/hls/ppvod1983%s.ts" %n
        print("url",url)
        urls.put(url)
class Consumer(threading.Thread):
    def __init__(self,urls,*args,**kwargs):
        super(Consumer, self).__init__(*args,**kwargs)
        self.urls = urls
        self.queueLock = threading.Lock()
    def run(self):
        while True:
            if self.urls.empty():
                break
            else:
                self.queueLock.acquire()
                file = self.urls.get()
                self.queueLock.release()
                name = file.split(‘/‘)[-1]
                print("name",name)
                with open("./video/{}".format(name), "wb") as fp:
                    if os.access("./video/{}".format(name), os.F_OK):
                        pass
                    else:
                        resp = requests.get(file,verify = False)
                        fp.write(resp.content)
                print(name + "下载完成")
def get_ts(urls):
    with open("./video/kuiba.ts","wb") as fp:
        for index in range(0, len(urls)):
            resp =  requests.get(urls[index])
            fp.write(resp.content)
            print(str(index)+"下载完成")
def main():
    urls = Queue(2000)
    download(urls)
    # while not urls.empty():
    #     print(urls.get())
    for index in range(0,16):
        x = Consumer(urls)
        x.start()
if __name__ == ‘__main__‘:
    main()

此处开了16个子线程

原文地址:https://www.cnblogs.com/jswf/p/12350057.html

时间: 2024-10-12 14:51:22

python小白学习记录 多线程爬取ts片段的相关文章

python小白学习记录 运用lxml的xpath解析html文件

1 from lxml import etree 2 text = "<div><p>nmsl</p><span>nmsl</span></div>" 3 def htmlstree(text): 4 html = etree.HTML(text) 5 result = etree.tostring(html) 6 print(result) 7 return result.decode('utf-8') 8 #解

python小白学习记录 scrapy 结合 selenium 使用自己的chrome浏览器

chrome.exe --remote-debugging-port=9222 --user-data-dir="C:\selenum\AutomationProfile" 此条命令复制到命令行,打开端口为9222的浏览器 ,勿关闭 (此前应先配置环境变量 否则无chrome.exe此命令) chrome_options = Options() chrome_options.add_experimental_option("debuggerAddress", &qu

Python爬虫入门教程: All IT eBooks多线程爬取

All IT eBooks多线程爬取-写在前面 对一个爬虫爱好者来说,或多或少都有这么一点点的收集癖 ~ 发现好的图片,发现好的书籍,发现各种能存放在电脑上的东西,都喜欢把它批量的爬取下来. 然后放着,是的,就这么放着.......然后慢慢的遗忘掉..... All IT eBooks多线程爬取-爬虫分析 打开网址 http://www.allitebooks.com/ 发现特别清晰的小页面,一看就好爬 在点击一本图书进入,发现下载的小链接也很明显的展示在了我们面前,小激动一把,这么清晰无广告的

python多线程爬取网页

#-*- encoding:utf8 -*- ''' Created on 2018年12月25日 @author: Administrator ''' from multiprocessing.dummy import Pool as pl import csv import requests from lxml import etree def spider(url): header = {"User-Agent":"Mozilla/5.0 (Windows NT 6.1

多线程爬取小说时如何保证章节的顺序

前言 爬取小说时,以每一个章节为一个线程进行爬取,如果不加以控制的话,保存的时候各个章节之间的顺序会乱掉. 当然,这里说的是一本小说保存为单个txt文件,如果以每个章节为一个txt文件,自然不会存在这种情况. 不仅仅是小说,一些其他的数据在多线程爬取时也有类似情况,比如: 漫画:漫画其实是由大量图片组成,一般一本漫画会保存为一个pdf文件,在此过程要保证图片的顺序. 视频:现在网络上的视频大部分是由多个ts文件拼合,最后保存为一个mp4文件,要保证ts文件的顺序. 它们都有一个共同的特点,那就是

多线程爬取百度百科

前言:EVERNOTE里的一篇笔记,我用了三个博客才学完...真的很菜...百度百科和故事网并没有太过不一样,修改下编码,debug下,就可以爬下来了,不过应该是我爬的东西太初级了,而且我爬到3000多条链接时,好像被拒绝了...爬取速度也很慢,估计之后要接触一些优化或者多进程,毕竟python是假的多线程.本博客参照代码及PROJECT来源:http://kexue.fm/archives/4385/ 源代码: 1 #! -*- coding:utf-8 -*- 2 import reques

实现多线程爬取数据并保存到mongodb

多线程爬取二手房网页并将数据保存到mongodb的代码: import pymongo import threading import time from lxml import etree import requests from queue import Queue index_url='https://m.lianjia.com/gz/ershoufang/pg{}/' detail_url='https://m.lianjia.com{}' # 设置爬取主页的页数 INDEX_PAGE_

爬虫概念与编程学习之如何爬取视频网站页面(用HttpClient)(二)

先看,前一期博客,理清好思路. 爬虫概念与编程学习之如何爬取网页源代码(一) 不多说,直接上代码. 编写代码 运行 <!DOCTYPE html><html><head><meta http-equiv="X-UA-Compatible" content="IE=Edge" /><meta http-equiv="Content-Type" content="text/html; c

python爬虫学习(1)__抓取煎蛋图片

#coding=utf-8 #python_demo 爬取煎蛋妹子图在本地文件夹 import requests import threading import time import os from bs4 import BeautifulSoup #伪造头文件 headers = { 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chr