天空树 2017-06-17 15:14 采纳率: 0%
浏览 1600

python爬虫爬取图片和图片的标题保存时出现IOError

import urllib
import urllib2
import re
import os

#爬取索引页面源代码
siteURL='https://www.warningsignsdirect.co.uk/index.php?cPath=518'
request=urllib2.Request(siteURL)
response=urllib2.urlopen(request)
page=response.read().decode('utf-8')
print u"已爬取索引页面源代码"

os.chdir("C:\Users\hey_fall\Desktop")

#抓取页面中指定的图片
pattern=re.compile('

.*?

.*?




',re.S)
content=re.findall(pattern,page)
patternImg=re.compile('<img src="(.*?)"',re.S)
images=re.findall(patternImg,str(content))
print u"已爬取该网页图片"

#抓取图片的说明文本
patternIntroductions=re.compile('title="(.*?)"',re.S)
Introductions=re.findall(patternIntroductions,str(content))

#去除匹配字符中的转义字符
number=0
for introduction in Introductions:
Introductions[number]=str(introduction).replace('\','')
number+=1
print u"已爬取图片的说明文本"

#抓取说明文本的标题
patternTitle=re.compile('

(.*?) ')
Title=re.findall(patternTitle,page)
print u"已爬取文本标题"

#创建文件夹
path=os.getcwd()
title=Title[0]
new_path=os.path.join(path,title)
if not os.path.isdir(new_path):
os.makedirs(new_path)
os.chdir(new_path)
print u"已创建文件夹",new_path

#保存图片的说明文本
IntroductionName=Title[0]+".txt"
f=open(IntroductionName,'w+')
for introduction in Introductions:
f.write(introduction+'\n')
f.close()
print u"图片的说明文本已保存到",new_path

#保存抓取到的图片
number=0
for imageURL in images:
filename=Introductions[number]+'.jpg'
url='https://www.warningsignsdirect.co.uk'+'/'+imageURL
urllib.urlretrieve(url,filename)
number+=1
print u"图片已保存到",new_path
print u"该网页内容爬取完毕"

  • 写回答

2条回答 默认 最新

  • threenewbee 2017-06-17 15:45
    关注

    文件名里是否有特殊字符,是否有文件写入的权限

    评论

报告相同问题?

悬赏问题

  • ¥50 求图像处理的matlab方案
  • ¥50 winform中使用edge的Kiosk模式
  • ¥15 关于#python#的问题:功能监听网页
  • ¥15 怎么让wx群机器人发送音乐
  • ¥15 fesafe材料库问题
  • ¥35 beats蓝牙耳机怎么查看日志
  • ¥15 Fluent齿轮搅油
  • ¥15 八爪鱼爬数据为什么自己停了
  • ¥15 交替优化波束形成和ris反射角使保密速率最大化
  • ¥15 树莓派与pix飞控通信