|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- import urllib.request
- import re
- def page(pg): #网页
- url = 'https://www.pengfu.com/index_%s.html'%pg
- req = urllib.request.Request(url)
- req.add_header('User-Agent','Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.104 Safari/537.36')
- html = urllib.request.urlopen(req).read().decode('utf-8')
- #print(html)
- return html
- def title(html): #标题
- reg = re.compile(r'<h1 class="dp-b"><a href=".*?" target="_blank">(.*?)</a>')
- item = re.findall(reg,html)
- #for i in item:
- #print(i)
-
- return item
- def content(html): # 图片
- reg = re.compile(r'<img src="(.*?)" width=')
- item = re.findall(reg,html)
- return item
- def mm(): #主函数
- for i in range(20,25):
- html = page(i)
- title_list = title(html)
- content_list = content(html)
- for k,z in zip(title_list,content_list):
-
- print(k,z)
- path = 'D:\PYPY,,\捧腹\%s.gif'%(k)
- urllib.request.urlretrieve(z,path)
- if __name__ =='__main__':
- mm()
-
复制代码
你看你代码打印出来的图片地址,全都是jpg png结尾的,这些不是动图的后缀,最后保存下来,虽然你强制把后缀改为了gif,但其本身并不是动图,所以就不会动了
不过奇怪的是,用这种方法写出来的代码看上去是没问题的,但抓取到的html文件中图片地址好像并不太对,真实的地址是这个
但抓取到的却是这个
不知道是不是网站对爬虫有什么限制,或者是什么其他因素导致了这个问题的出现
现在我还没找到比较好的方法解决,暂时只能想到一个暴力方法
仔细比对这两个地址,除了后缀名不同外,中间还有一个thumb替换为了origin,那么我在程序中把这两个地方改掉就能正常下载动图了
- def mm(): # 主函数
- for i in range(1, 3):
- html = page(i)
- title_list = title(html)
- content_list = content(html)
- for k, z in zip(title_list, content_list):
- print(k, z)
- try:
- z = z.replace("thumb", "origin")
- z = z.replace(".jpg", ".gif")
- path = 'D:\PY\捧腹\%s.gif' % (k)
- urllib.request.urlretrieve(z, path)
- except:
- pass
复制代码
|
|