吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1411|回复: 0
收起左侧

[Python 转载] 简单爬虫分享--爬取站长素材图片

[复制链接]
∫護着妳佉遠方 发表于 2022-1-5 14:41
本帖最后由 ∫護着妳佉遠方 于 2022-1-16 15:57 编辑

已修改,获取高清图片图片仅仅适合当测试图片

此次爬虫是新手练习之举,简单分享


[Python] 纯文本查看 复制代码
"""
 * @codding : utf-8
 * [url=home.php?mod=space&uid=238618]@Time[/url]  : 2022/1/5 13:19:01
 * [url=home.php?mod=space&uid=153612]@system[/url]  : Windows 11
 * [url=home.php?mod=space&uid=371834]@SOFTWARE[/url] : PyCharm
 * [url=home.php?mod=space&uid=686208]@AuThor[/url]   :  
"""

# 需求,下载站长素材10页图片
# 第一页   https://sc.chinaz.com/tupian/siwameinvtupian.html
# 第二页  https://sc.chinaz.com/tupian/siwameinvtupian_2.html
# 第三页  https://sc.chinaz.com/tupian/siwameinvtupian_3.html
import time
import urllib.request
import random

from lxml import etree


# 1.请求对象的定制
def create_requset(i):
    if i == 1:
        url = 'https://sc.chinaz.com/tupian/siwameinvtupian.html'
    else:
        url = 'https://sc.chinaz.com/tupian/siwameinvtupian_{}.html'.format(i)

    headers = {
        'Cookie': 'Hm_lvt_398913ed58c9e7dfe9695953fb7b6799=1641359989; Hm_lpvt_398913ed58c9e7dfe9695953fb7b6799=1641360418',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0',
    }

    request = urllib.request.Request(url=url, headers=headers)
    return request


# 获取网页数据
def get_content_type(request):
    response = urllib.request.urlopen(request)
    content = response.read().decode('utf-8')
    return content


# 下载
def down_load(content):
    # 解析网页
    tree = etree.HTML(content)
    # 图片地址
    img_address = tree.xpath('//*[@id="container"]/div/div/a/img/@src2')
    # 图片名称
    img_name = tree.xpath('//*[@id="container"]/div/div/a/img/@alt')
    # urllib.request.urlretrieve(图片地址, 图片名字)
    for i in range(len(img_address)):
        address = img_address[i]
        address = address.replace('_s','' )
        name = img_name[i]
        img_url = 'https:' + address
        urllib.request.urlretrieve(url=img_url, filename= './14_站长素材下载/' + name + '.jpg')


if __name__ == "__main__":
    start_page = int(input("请输入开始页码(从第1页开始):") or '1')
    end_page = int(input("请输入结束页码(最大为8):"))
    for i in range(start_page, end_page + 1):
        request = create_requset(i)
        content = get_content_type(request)
        down_load(content)
        y = random.randint(5, 10)  # 随机生成 5~10的数字
        time.sleep(y)
        print('---成功下载第:%s 页内容---' % (i))
        print('生成:{} ,休眠了{}秒'.format(y, y))

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 10:30

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表