requests 爬取图片

requests 爬取图片

爬取一张图片

import requests
#爬取对象网址 https://pic.qiushibaike.com

#爬取一张图片

url = 'https://pic.qiushibaike.com/system/pictures/12416/124164031/medium/6OVZQ8EAZPYTDGZO.jpg'
# text(字符串) content(二进制) json()(json对象)
img_data = requests.get(url=url,verify=False).content #content返回二进制响应数据
with open('图片.jpg','wb')as f:
    f.write(img_data)

爬取第一页的图片

import requests
import re
import os

#创建一个保存所有图片的文件夹
if not os.path.exists(file_name := r'C:\Users\Administrator\Desktop\1000篇技术博客\python模块整理 20210320\piclibs'):
    os.mkdir(file_name)

#爬取对象网址 https://www.qiushibaike.com/imgrank/

#UA伪装
headers={
    'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'
}

#爬取第一页
url = 'https://www.qiushibaike.com/imgrank/'
page_text = requests.get(url=url,headers=headers,verify=False).text
print(page_text)
#提取图片的url

#测试提取一张图片的的url地址
content = '''
<div class="thumb">

<a href="/article/124179961" target="_blank">
<img src="//pic.qiushibaike.com/system/pictures/12417/124179961/medium/4P9MQYYXOSPAB0P0.jpg" alt="糗事#124179961" class="illustration" width="100%" height="auto">
</a>
</div>
'''
pattern = re.compile(r'<div class="thumb">.*?<img src="//(.*?)".*?</div>',flags=re.DOTALL)
res = pattern.findall(content)[0]
print(res) #通过re找到了所有的page

#提取页面内所有图片的url地址们
res_all = pattern.findall(page_text)
print(res_all)
#拼接上协议头
for i in res_all:
    i = 'https://' + i
    img_data = requests.get(url=i,headers=headers,verify=False).content
    with open(f'{file_name}\\{os.path.basename(i)}','wb')as f:
        f.write(img_data)

爬取N页

import requests
import re
import os

#创建一个保存所有图片的文件夹
if not os.path.exists(file_name := r'C:\Users\Administrator\Desktop\1000篇技术博客\python模块整理 20210320\piclibs'):
    os.mkdir(file_name)

#UA伪装
headers={
    'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'
}

#解析图片的正则
pattern = re.compile(r'<div class="thumb">.*?<img src="//(.*?)".*?</div>',flags=re.DOTALL)

##设置一个通用的url模板
for i in range(1,5):
    url = 'https://www.qiushibaike.com/imgrank/page/%s' % (i)
    page_text = requests.get(url=url,headers=headers,verify=False).text
    print(page_text)

#提取页面内所有图片的url地址们
    res_all = pattern.findall(page_text)
    print(res_all)
    #拼接上协议头
    for i in res_all:
        i = 'https://' + i
        img_data = requests.get(url=i,headers=headers,verify=False).content
        with open(f'{file_name}\\{os.path.basename(i)}','wb')as f:
            f.write(img_data)
print('over')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值