python3 爬虫—爬取豆瓣电影图片(一)

内容:

爬取豆瓣电影首页https://movie.douban.com/ 显示出来的图片,并将其保存于本地路径中。


网页部分截图:


原理:

1.使用内置库:urllib.request 获取请求得到网页数据 ;

2.利用header 进行伪装浏览器;

3.再使用正则表达式  r'(https:[^s]*?(jpg|png|gif))'  取出照片地址

4.创建本地路径进行存储


代码:

import urllib.request
import socket
import re
import sys
import os

# 定义图片保存路径
targetPath = "D:\\py_project\\img"


def saveImg(path):
    # 检测当前根路径是否有效,不存在则新建
    if not os.path.isdir(targetPath):
        os.mkdir(targetPath)

    # 设置每个图片的路径
    # 获取图片地址最后一个 / 的位置
    pos = path.rindex('/')

    # img_path[pos+1:]获取/后面的名称,并加入到根路径
    t = os.path.join(targetPath, path[pos + 1:])
    return t


if __name__ == '__main__':

    # 需要抓取的url
    url = "https://movie.douban.com/ "
    # 添加header文件伪装成浏览器
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) ' 'Chrome/51.0.2704.63 Safari/537.36'
    }
    # 通过urllib.request获取请求页面数据data
    req = urllib.request.Request(url=url, headers=headers)

    res = urllib.request.urlopen(req)

    data = res.read()

    # 通过正则表达式抓取储图片url
    for link, t in set(re.findall(r'(https:[^s]*?(jpg|png|gif))', str(data))):

        print(link)
        try:
            urllib.request.urlretrieve(link, saveImg(link))
        except:
            print('失败')

运行结果



  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值