|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 罗同学 于 2018-7-21 01:41 编辑
前几天写了一个爬某网站图片的爬虫、但是一个个页面的保存太慢了、今天正巧看书写道了多线程,想用多线程并发改写一下。之前一个个页面爬的时候可以使用os(下文第6、7、20行代码)命令保存到网页名对应的文件夹下,但是多线程并发调用下面的save函数的话,多个线程都是使用同一个工作目录。导致无法保存到对应的文件夹下、请问论坛大神有没有什么方法可以解决呢
- def save(url): # 传入每个子网页链接
- res = url_open(url)
- res.encoding = 'gbk'
- soup = bs(res.text, 'lxml')
- title = soup.find('title').text.split('-')[0] # 标题
- os.mkdir(title)
- os.chdir(title)
- temp = soup.find_all('tr', class_='tr3')
- img = re.findall(r'data-src="(.*?jpg)" type', str(temp))
- imglist = []
- for each in img:
- imglist.append(each)
- for each in imglist:
- filename = each.split('/')[-1]
- img = url_open(each)
- print('saving...+%s'%filename)
- with open(filename, 'wb')as f:
- f.write(img.content)
- os.chdir('..')
复制代码
本帖最后由 Python_str 于 2018-7-21 12:04 编辑
不知道你其他代码是什么样的 你可以用队列来多线程之间通讯的思路来实现
就这这么模块queue的Queue
|
|