【python】研究与实践 python线程池爬取某网的接口视频资源入库
2016-11-20 11:09
357 查看
研究与实践 python线程池爬取某网的接口视频资源入库
Python(派森),它是一个简单的、解释型的、交互式的、可移植的、面向对象的超高级语言。这就是对Python语言的最简单的描述。 python 是一种解释性脚本语言,不像c++/java那样的高级语言,需要编译成字节码之后才能运行,python可以边运行边解释。 python主要应用于以下几个领域: web开发,基于python产生了许多优秀的web框架,许许多多伟大的开源社区的程序员为它们贡献了诸多的开源库,
使得开发起来十分便捷。爬虫开发,实际上这个只是一个小小的应用,基于python的http库有很多, 比如常见的httplib,urllib2,requests等,都很好的封装了http协议中的post,get等方法,也很方便的能够模拟浏览 器去实现自己想要的功能,并且,对网页的解析也有诸多工具可以使用,如beautifulsoup等。科学计算,不得不提是 python在科学计算领域也应用越来越广,如物理学领域,各种的实验数据的处理以及相关实验模拟等,机器学习领域 也产生了诸多的开源库,如sklearn,里面集成了机器学习领域常见的算法,接口良好,文档丰富,也有最近十分火热 的Deep Learning的开源库,如theano。高性能服务器后端,高性能不是说python执行有多快,其实python还是比 较慢的,但是在开发高并发,高吞吐率的服务器的时候,还是具有自己独特的优势。还有一切边边角角的应用,
比如开发界面程序,QT也提供了python的支持,因为python的开源库中包括了对c/c++ lib库的调用。
# -*-coding:utf8-*- from lxml import etree from multiprocessing.dummy import Pool as ThreadPool import requests import time import sys import re import json import MySQLdb reload(sys) sys.setdefaultencoding('utf-8') urls = [] head = { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.130 Safari/537.36' } time1 = time.time() for i in range(1,10000): url = 'https://domain.com/video/' + str(i) urls.append(url) def spider(url): html = requests.get(url, headers=head) json_url = url jsoncontent = requests.get(json_url, headers=head).content jsDict = json.loads(jsoncontent) if jsDict['code'] == 0: jsData = jsDict['data'] vtitle = jsData['vtitle'] play_count = jsData['play_count'] date_add = jsData['date_add'] try: conn = MySQLdb.connect(host='localhost', user='', passwd='', port=3306, charset='utf8') cur = conn.cursor() conn.select_db('db') cur.execute( 'INSERT INTO videos( url, json, vtitle, play_count,datetime) VALUES ' '(%s,%s,%s,%s,%s)', [ str(json_url), str(jsData), vtitle,play_count,date_add]) conn.commit() print "Succeed: " + str(urls) except MySQLdb.Error, e: print "Mysql Error %d: %s" % (e.args[0], e.args[1]) else: print "Error_Json: " + url pool = ThreadPool(10) # results = pool.map(spider, urls) try: results = pool.map(spider, urls) except Exception, e: # print 'ConnectionError' print e time.sleep(300) results = pool.map(spider, urls) pool.close() pool.join()
相关文章推荐
- python 线程池的研究及实现
- 使用Python编写简单网络爬虫抓取视频下载资源
- 最重要的AI资源都在这里(大牛,研究机构,视频,博客,书籍,Quora......)
- 云场景实践研究第20期:梨视频
- Python scrapy实践应用,爬取电影网站的影片资源并存入数据库
- Let's-python视频教程发布专贴(更新下载方式: 纳米,电驴,迅雷快传)(2012年10月07日更新纳米部分资源)
- 2017年必看的免费linux视频及python视频资源合集
- caffe的python接口以opencv的方式读取视频,图片做分类时出错的解决
- Python3利用网页接口制作一个免费的VIP视频播放软件
- 使用Python编写简单网络爬虫抓取视频下载资源
- 【音视频研究与实践】FFmpeg的实践 更新中
- 关于python测试webservice接口的视频分享
- 机器学习:AI资源网址链接(大牛,研究机构,视频,博客,书籍,Quora......)
- Caffe windows下入门级别的从编译到训练然后到分类(用python接口)资源下载(一)
- 视频编码研究资源收录
- 关于python测试webservice接口的视频分享
- 自动化打包资源混淆集成python实践----打包
- python 线程池 分配任务给线程,爬取加入库。
- caffe中python接口配置实践
- 大数据 架构师 springboot python 区块链 机器学习 视频资源