之前用的一个多进程python爬虫
来源:互联网 发布:遭遇网络诈骗怎么报警 编辑:程序博客网 时间:2024/06/05 05:19
#!C:\Python27\python.exe#coding=utf8import osimport urllibimport urllib2from bs4 import BeautifulSoupfrom multiprocessing import Poolimport socketsocket.setdefaulttimeout(60)def url_open(url): user_agent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36' headers = {'User-Agent': user_agent} request = urllib2.Request(url=url, headers=headers) try: page = urllib2.urlopen(request, timeout=60) except urllib2.HTTPError as e: return 1 contents = page.read() # print contents soup = BeautifulSoup(contents.decode('gb2312','ignore'), "lxml") return soupdef retrieve_img(dir, link): if url_open(link) != 1: soup = url_open(link) for line in soup.find_all("div", "ContentBox"): img_list = line.find_all('img') for img_item in img_list: raw_img = img_item.get('src') img_url = 'http:' + raw_img img_name = raw_img.split('/')[-1] print "Download: %s" % img_url # print img_name urllib.urlretrieve(img_url, dir + '\\' + img_name)def crawler(root, url): # print url if url_open(url) != 1: soup = url_open(url) # print soup for line in soup.find_all("div", "box_con newslist"): li = line.find_all('li') for a in li: href = a.find_all('a') link = root + href[0].get('href') text = href[0].get_text() # print link print "Creating directory %s..." % text if not os.path.isdir(text): try: os.mkdir(text) if os.path.isdir(text): print "Directory %s successfully created!" % text print "Crawling image page %s." % link retrieve_img(text, link) except IOError, e: print e elif os.path.isdir(text): print "Directory %s already exists!" % text print "Crawling image page %s." % link retrieve_img(text, link) # break #func testdef single_func(num): root = 'http://xxx.com' url = "http://xxx.com/articlelist/?20-" + str(num) + '.html' crawler(root, url)if __name__ == '__main__': # single_func(1) #func test pool = Pool(processes=8) for i in range(1, 187): result = pool.apply_async(single_func, (i,)) pool.close() pool.join() if result.successful(): print 'Successful!'
阅读全文
0 0
- 之前用的一个多进程python爬虫
- python爬虫-多进程
- Python 网络爬虫 002 (入门) 爬取一个网站之前,要了解的知识
- 用Python写一个简单的爬虫
- python 多进程爬虫案例
- 一个简单的Python爬虫
- 一个Python爬虫的诞生
- python queue和多线程的爬虫 与 JoinableQueue和多进程的爬虫
- python爬虫学习多进程下载图片
- Python爬虫学习笔记--多进程用法
- python爬虫——多进程multiprocessing
- python scrapy多进程新闻爬虫
- Python多进程协程爬虫----1
- python爬虫:编写多进程爬虫学习笔记
- 用python实现的一个抓取图片的爬虫
- 共享一个之前封装的多进程共享内存的MemoryStream
- python 多进程使用的一个假象
- 用Python写一个小小的爬虫程序
- Spring Boot 动态数据源(多数据源自动切换)[转载]
- 欢迎使用CSDN-markdown编辑器
- HDFS小文件的合并优化
- Java中的Date和时区转换
- Ubuntu下PX4飞控开发环境搭建
- 之前用的一个多进程python爬虫
- myeclispe调试Fn键
- [转]详细解释CNN卷积神经网络各层的参数和链接个数的计算
- 苹果手机用H5audio标签无法自动播放音乐处理方法
- 最长连续子序列
- Java中Synchronized的用法
- 单片机mcu—time定时器详解
- Java设计模式之行为型模式(一)
- 特殊字符显示问题