最近学习了一下python的多进程和多线程,于是就想到使用进程去现实一个爬虫。通过比较实用多进程比使用普通函数的效率更高,节省了大量的时间。话不多说,看下面的代码,希望对各位有所帮助。
import os, sys, io, urllib, requests, re, chardet, time
import multiprocessing
#设置系统输出流的编码为utf-8
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf8')
headers = {
'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Mobile Safari/537.36'
}
url = 'http://www.ivsky.com/tupian/ziranfengguang/'
def Schedule(blocknum, blocksize, totalsize):
"""
blocknum:已经下载的数据块
blocksize:数据块的大小
totalsize:远程文件的大小
"""
per = blocknum * blocksize / totalsize * 100.0
if per > 100:
per = 100
print('当前下载进度: %.2f%%'%per)
def download_page():
try:
res = requests.get(url, headers=headers)