- 浏览: 361575 次
- 性别:
- 来自: 四川
文章分类
- 全部博客 (247)
- 数据库以及sql (11)
- java (48)
- 爬虫学习 (20)
- java编程 (28)
- python编程以及安装和配置 (27)
- oracle数据库 (32)
- mongodb基本操作 (4)
- linux学习 (7)
- easyUI (2)
- nodeJs (8)
- python学习 (16)
- 其他 (13)
- hadoop (1)
- svn (1)
- 汉字 (1)
- windows (2)
- jsp (5)
- fiddler (1)
- ETL (1)
- teamviewer (1)
- maven (4)
- GIT (2)
- datagrip (1)
- ocr (1)
- redis (3)
- mysql (3)
- linux (1)
- 数据服务 (0)
最新评论
# coding=utf-8
'''
Created on 2017年5月16日
@author: chenkai
Python多线程爬取某单无聊图图片地址(requests+BeautifulSoup+threading+Queue模块)
'''
import requests
from bs4 import BeautifulSoup
import threading
import Queue
import time
class Spider_Test(threading.Thread):
def __init__(self,queue):
threading.Thread.__init__(self)
self.__queue = queue
def run(self):
while not self.__queue.empty():
page_url=self.__queue.get() #从队列中取出url
print page_url
self.spider(page_url)
def spider(self,url):
r=requests.get(url) #请求url
soup=BeautifulSoup(r.content,'lxml') #r.content就是响应内容,转换为lxml的bs对象
imgs = soup.find_all(name='img',attrs={}) #查找所有的img标签,并获取标签属性值(为列表类型)
for img in imgs:
if 'onload' in str(img): #img属性集合中包含onload属性的为动态图.gif,
print 'http:'+img['org_src']
else:
print 'http:'+img['src']
def main():
queue=Queue.Queue()
url_start = 'http://jandan.net/pic/page-'
for i in range(293,295):
url = url_start+str(i)+'#comment'
queue.put(url) #将循环拼接的url放入队列中
threads=[]
thread_count=2 #默认线程数(可自动修改)
for i in range(thread_count):
threads.append(Spider_Test(queue))
for i in threads:
i.start()
for i in threads:
i.join()
if __name__ == '__main__': #在.py文件中使用这个条件语句,可以使这个条件语句块中的命令只在它独立运行时才执行
time_start = time.time()
main() #调用main方法
print time.time()-time_start
#背景知识
'''
q = Queue.Queue(maxsize = 10)
Queue.Queue类即是一个队列的同步实现。队列长度可为无限或者有限。可通过Queue的构造函数的可选参数maxsize来设定队列长度。如果maxsize小于1就表示队列长度无限。
将一个值放入队列中
q.put(10)
调用队列对象的put()方法在队尾插入一个项目。put()有两个参数,第一个item为必需的,为插入项目的值;第二个block为可选参数,默认为
1。如果队列当前为空且block为1,put()方法就使调用线程暂停,直到空出一个数据单元。如果block为0,put方法将引发Full异常。
将一个值从队列中取出
q.get()
调用队列对象的get()方法从队头删除并返回一个项目。可选参数为block,默认为True。如果队列为空且block为True,get()就使调用线程暂停,直至有项目可用。如果队列为空且block为False,队列将引发Empty异常。
'''
如果想要下载图片需要
import urllib
再替换spider方法即可
def spider(self,url):
r=requests.get(url)
soup=BeautifulSoup(r.content,'lxml')
imgs = soup.find_all(name='img',attrs={})
urls=[]
for img in imgs:
if 'onload' in str(img):
print 'http:'+img['org_src']
urls.append('http:'+img['org_src'])
else:
print 'http:'+img['src']
url = urls.append('http:'+img['src'])
#下载图片
k=0
for urlitem in urls:
k+=1
if '.jpg' in urlitem:
urllib.urlretrieve(url=urlitem,filename='F:\image\\'+str(k)+'.jpg')
-----------多线程访问百度实例
#coding:utf-8
import requests
import threading
import time
import sys
url = 'https://www.baidu.com'
def get_baidu():
global url
time_start = time.time()
r = requests.get(url=url)
times = time.time()-time_start
sys.stdout.write('status:%s time:%s current_time:%s\n'%(r.status_code,times,time.strftime('%H:%M:%S')))
def main():
threads = []
thread_count = 10
for i in range(thread_count):
t = threading.Thread(target=get_baidu,args=())
threads.append(t)
for i in range(thread_count):
threads[i].start()
for i in range(thread_count):
threads[i].join()
if __name__=='__main__':
main()
'''
Created on 2017年5月16日
@author: chenkai
Python多线程爬取某单无聊图图片地址(requests+BeautifulSoup+threading+Queue模块)
'''
import requests
from bs4 import BeautifulSoup
import threading
import Queue
import time
class Spider_Test(threading.Thread):
def __init__(self,queue):
threading.Thread.__init__(self)
self.__queue = queue
def run(self):
while not self.__queue.empty():
page_url=self.__queue.get() #从队列中取出url
print page_url
self.spider(page_url)
def spider(self,url):
r=requests.get(url) #请求url
soup=BeautifulSoup(r.content,'lxml') #r.content就是响应内容,转换为lxml的bs对象
imgs = soup.find_all(name='img',attrs={}) #查找所有的img标签,并获取标签属性值(为列表类型)
for img in imgs:
if 'onload' in str(img): #img属性集合中包含onload属性的为动态图.gif,
print 'http:'+img['org_src']
else:
print 'http:'+img['src']
def main():
queue=Queue.Queue()
url_start = 'http://jandan.net/pic/page-'
for i in range(293,295):
url = url_start+str(i)+'#comment'
queue.put(url) #将循环拼接的url放入队列中
threads=[]
thread_count=2 #默认线程数(可自动修改)
for i in range(thread_count):
threads.append(Spider_Test(queue))
for i in threads:
i.start()
for i in threads:
i.join()
if __name__ == '__main__': #在.py文件中使用这个条件语句,可以使这个条件语句块中的命令只在它独立运行时才执行
time_start = time.time()
main() #调用main方法
print time.time()-time_start
#背景知识
'''
q = Queue.Queue(maxsize = 10)
Queue.Queue类即是一个队列的同步实现。队列长度可为无限或者有限。可通过Queue的构造函数的可选参数maxsize来设定队列长度。如果maxsize小于1就表示队列长度无限。
将一个值放入队列中
q.put(10)
调用队列对象的put()方法在队尾插入一个项目。put()有两个参数,第一个item为必需的,为插入项目的值;第二个block为可选参数,默认为
1。如果队列当前为空且block为1,put()方法就使调用线程暂停,直到空出一个数据单元。如果block为0,put方法将引发Full异常。
将一个值从队列中取出
q.get()
调用队列对象的get()方法从队头删除并返回一个项目。可选参数为block,默认为True。如果队列为空且block为True,get()就使调用线程暂停,直至有项目可用。如果队列为空且block为False,队列将引发Empty异常。
'''
如果想要下载图片需要
import urllib
再替换spider方法即可
def spider(self,url):
r=requests.get(url)
soup=BeautifulSoup(r.content,'lxml')
imgs = soup.find_all(name='img',attrs={})
urls=[]
for img in imgs:
if 'onload' in str(img):
print 'http:'+img['org_src']
urls.append('http:'+img['org_src'])
else:
print 'http:'+img['src']
url = urls.append('http:'+img['src'])
#下载图片
k=0
for urlitem in urls:
k+=1
if '.jpg' in urlitem:
urllib.urlretrieve(url=urlitem,filename='F:\image\\'+str(k)+'.jpg')
-----------多线程访问百度实例
#coding:utf-8
import requests
import threading
import time
import sys
url = 'https://www.baidu.com'
def get_baidu():
global url
time_start = time.time()
r = requests.get(url=url)
times = time.time()-time_start
sys.stdout.write('status:%s time:%s current_time:%s\n'%(r.status_code,times,time.strftime('%H:%M:%S')))
def main():
threads = []
thread_count = 10
for i in range(thread_count):
t = threading.Thread(target=get_baidu,args=())
threads.append(t)
for i in range(thread_count):
threads[i].start()
for i in range(thread_count):
threads[i].join()
if __name__=='__main__':
main()
发表评论
-
python中将unicode(u'\u7684') 转中文字符
2018-08-16 16:16 3962ddd=u'\u7684' ddd=ddd.encode(&q ... -
python中的开放运算
2017-07-06 09:39 975要点: 将整数用浮点数表示:由于Python的整数除法,为了 ... -
eclipse创建scrapy项目
2017-05-12 17:23 10251. 您必须创建一个新的Scrapy项目。 进入您打算存储代码 ... -
windows安装scrapy框架步骤
2017-05-12 13:05 572Scrapy简介 Scrapy是一个快速,高效的网页抓取Pyt ... -
python操作mongoDB
2017-05-12 10:04 1016#coding=utf-8 from pymongo impo ... -
windows下安装Scrapy框架(python)
2017-03-22 14:39 7171、下载安装Python2.7.6, ... -
python "\xc5\xc0\xb3\xe6" 转汉字
2017-03-10 10:10 5319print "\xc5\xc0\xb3\xe6&qu ... -
python_GUI应用程序代码
2017-03-03 10:06 635# coding=utf-8 ''' Created on 2 ... -
python读写excel
2017-03-03 10:05 1022# coding=utf-8 ''' Created on 2 ... -
python标准异常分类
2017-03-01 16:09 410ppython标准异常分类 BaseException ... -
python在linux、windows下执行命令的方法
2017-02-22 16:52 1006windows下: import os cmdres= os. ... -
python中selenium 滚动条下拉 操作
2017-02-22 11:16 6683方法一)使用js脚本直接操作,方法如下: js=" ... -
python+BeautifulSoup+selenium+mysqldb完成数据抓取
2017-02-21 14:28 894# coding=utf-8 ''' Created on 2 ... -
python+selenium浏览器调用(chrome、ie、firefox)
2017-02-20 14:35 1876#coding=utf-8 from selenium im ... -
windows下安装beautifulsoup
2017-02-14 10:57 8101.去beautiful soup官网上去下载最新版本是4.3 ... -
windows下casperjs安装以及配置
2017-02-14 10:20 380下载casperjs,解压后命名为casperjs 添加环境变 ... -
wingdows下安装phantomjs
2017-02-14 10:19 396下载phantomjs后解压,重命名为phantomjs 添加 ... -
python下安装beautifulsoup4-4.3.1
2017-02-07 16:18 5281.去beautiful soup官网上去下载最新版本是4.3 ... -
python中的正则表达式,python
2017-02-07 10:20 611# coding=utf-8 ''' Created on 2 ... -
python时间格式
2017-01-17 10:35 4551. 日期输出格式化 datetime => strin ...
相关推荐
介绍 多线程爬取图片,自动记录爬取页数,防止断网断电其他原因导致程序中断,再次重复爬取。 使用说明 python3.X 1、requests 2、lxml
提供了使用python多线程与但线程下载在线地图瓦片的源码。多线程方式,经过实测检验,可以稳定长时间运行,下载失败,自动重试。python3.0环境
python多线程技术爬取天天基金排行榜所有基金数据,结果并保存到excel并写入mysql数据库。基金股票量化分析利器,分分钟获取股票基金数据。
python爬虫,爬取贴吧python爬虫,爬取贴吧python爬虫,爬取贴吧python爬虫,爬取贴吧python爬虫,爬取贴吧python爬虫,爬取贴吧python爬虫,爬取贴吧python爬虫,爬取贴吧python爬虫,爬取贴吧python爬虫,爬取贴吧...
Python 实例 - 爬取某网站评论 Python源码Python 实例 - 爬取某网站评论 Python源码Python 实例 - 爬取某网站评论 Python源码Python 实例 - 爬取某网站评论 Python源码Python 实例 - 爬取某网站评论 Python源码...
主要介绍了Python多线程爬取豆瓣影评API接口,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
python百度图片自动爬取程序多线程升级版
python的多线程爬取下载图片
在windows端利用python多线程爬取多个网页示例
由于很多网站上的视频只提供在线观看,没有下载入口,故有必要进行网络爬虫获取视频资源。 利用requests获取网页源代码中的m3u8链接,对链接进行逐步解析,获取ts列表,下载所有ts文件,将其合并生成mp4文件。做到对...
python爬取第一PPT爬取PPT,附带详细教程,合适新手学习python
python爬虫实战,多线程爬取京东
python多线程爬虫爬取电影天堂资源 python多线程爬虫爬取电影天堂资源
Python中用多线程爬取网页图像的好处
自己写的基于Python的淘宝评论爬取,并得到商品的图片
Python 多线程编程实例,一个综合示例
Python中用多线程爬取网页图像的好处.pdf
该项目旨在使用Python编写一个多线程爬虫程序,从电影天堂网站上爬取电影资源信息,包括电影名称、年份、类型、评分、下载链接等。采用多线程设计可以显著提高爬虫的爬取效率。 2. 核心功能: - 解析电影天堂网站HTML...
python3 爬虫爬取静态网页和动态网页下载图片案例.rar python3 爬虫爬取静态网页和动态网页下载图片案例.rar python3 爬虫爬取静态网页和动态网页下载图片案例.rar python3 爬虫爬取静态网页和动态网页下载图片案例....