爬取腾讯首页所有的图片并保存到本地

爬虫的知识点有点忘记了,做个小练习复习一个。

题目

'''
抓取腾讯主页中的图片到本地
1. 抓取网页
2. 抓取图片地址
3. 抓取图片内容并保存到本地
'''

代码

import re
import requests
import os
from urllib.request import urlretrieve

#访问腾讯首页
response = requests.get('http://www.qq.com/')
#获取完整的html
content = response.text

#正则找到所有src属性对应的链接
links = re.findall(r'src="(.*?)"',content)
##print(links)
#找到所有有效的链接
valid_links = []
for link in links:
      if link.endswith('.js') or link.endswith('.css'):
            continue
      #url中没有http时手动补充
      if not link.startswith('http'):
            valid_links.append("http:"+link)


#新建image文件夹
if not os.path.exists("image"):
      os.mkdir('image')
#将图片内容保存到image文件夹
i = 0
for link in valid_links:
      print(link)
      urlretrieve(link,'image\\%s.jpg'%i)
      i += 1

执行结果

 

注意:

1.正则直接匹配.png或者.jpg的话,会有问题,因为会有图片的url结尾是数字的情况,这样匹配出来的是两个src之间的内容,这并不是我们想要的。所以采用折中的办法,现将src中所有的链接匹配出来,然后将后缀为.js/.css等内容忽略掉即可

2.html源码中的链接有的带http:有的不带,需要判断,没有的话要手动添加,这样才能访问正确的url

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值