用python编写一个小程序

亲爱的朋友们,今天我们要讨论,用python编写一个微信小程序 python制作小程序制作流程,让我们开始吧!

文章目录

一、爬取目标二、实现效果三、准备工作四、代码实战4.1 导入模块4.2 设置翻页4.3 获取图片链接4.4 下载图片4.5 调用主函数4.6 完整源码

一、爬取目标

本次爬取的目标是 又又又一个 某网站4K高清小姐姐图片:

二、实现效果

实现批量下载指定关键词的图片,存放到指定文件夹中:

三、准备工作

Python:3.10

编辑器:PyCharm

第三方模块,自行安装:

pip install requests # 网页数据爬取
pip install lxml # 提取网页数据

四、代码实战

4.1 导入模块

import requests  # python基础爬虫库
from lxml import etree  # 可以将网页转换为Elements对象
import time  # 防止爬取过快可以睡眠一秒
import os # 创建文件

4.2 设置翻页

首先我们来分析一下网站的翻页,一共有10页:

第一页链接:


第二页链接:


第三页链接:


可以看出每页只有95-2-2-后面从第二页开始依次加上1,所以用循环来构造所有网页链接:

if __name__ == '__main__':
    # 页码
    page_number = 10
    # 循环构建每页的链接
    for i in range(0,page_number+1):
        # 页数拼接
        url = f'{i}.html'

4.3 获取图片链接

可以看到所有图片url都在 ul标签 > li标签 > a标签 > img标签下:

我们创建一个get_imgurl_list(url)函数传入网页链接获取 网页源码,用xpath定位到每个图片的链接:

def get_imgurl_list(url,imgurl_list):
    """获取图片链接"""
    # 请求头
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36'}
    # 发送请求
    response = (url=url, headers=headers)
    # 获取网页源码
    html_str = 
    # 将html字符串转换为etree对象方便后面使用xpath进行解析
    html_data = (html_str)
    # 利用xpath取到所有的li标签
    li_list = html_data.xpath("//ul[@class='clearfix']/li")
    # 打印一下li标签个数看是否和一页的电影个数对得上
    print(len(li_list))  # 输出20,没有问题
    for li in li_list:
        imgurl = li.xpath(".//a/img/@data-original")[0]
        print(imgurl)
        # 写入列表
        imgurl_list.append(imgurl)

运行结果:

点开一个图片链接看看,OK没问题:

4.4 下载图片

图片链接有了,定义一个get_down_img(img_url_list)函数,传入图片链接列表,然后遍历列表,将所有图片下载到指定文件夹:

def get_down_img(imgurl_list):
    # 在当前路径下生成存储图片的文件夹
    os.mkdir("小姐姐")
    # 定义图片编号
    n = 0
    for img_url in imgurl_list:
        headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36'}
        # 每次发送请求,获取图片
        img_data = (url=img_url, headers=headers).content
        # 拼接图片存放地址和名字
        img_path = './小姐姐/' + str(n) + '.jpg'
        # 将图片写入指定位置
        with open(img_path, 'wb') as f:
            f.write(img_data)
        # 图片编号递增
        n = n + 1

4.5 调用主函数

这里我们可以设置需要爬取的页码:

if __name__ == '__main__':
    page_number = 10 # 爬取页数
    imgurl_list = [] # 存放图片链接
    # 1. 循环构建每页的链接
    for i in range(0,page_number+1):
        # 页数拼接
        url = f'{i}.html'
        print(url)
        # 2. 获取图片链接
        get_imgurl_list(url,imgurl_list)
    # 3. 下载图片
    get_down_img(imgurl_list)

4.6 完整源码

完整源码如下:

import requests  # python基础爬虫库
from lxml import etree  # 可以将网页转换为Elements对象
import time  # 防止爬取过快可以睡眠一秒
import os


def get_imgurl_list(url,imgurl_list):
    """获取图片链接"""
    # 请求头
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36'}
    # 发送请求
    response = (url=url, headers=headers)
    # 获取网页源码
    html_str = 
    # 将html字符串转换为etree对象方便后面使用xpath进行解析
    html_data = (html_str)
    # 利用xpath取到所有的li标签
    li_list = html_data.xpath("//ul[@class='clearfix']/li")
    # 打印一下li标签个数看是否和一页的电影个数对得上
    print(len(li_list))  # 输出20,没有问题
    for li in li_list:
        imgurl = li.xpath(".//a/img/@data-original")[0]
        print(imgurl)
        # 写入列表
        imgurl_list.append(imgurl)


def get_down_img(imgurl_list):
    # 在当前路径下生成存储图片的文件夹
    os.mkdir("小姐姐")
    # 定义图片编号
    n = 0
    for img_url in imgurl_list:
        headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36'}
 
        # 每次发送请求,获取图片
        img_data = (url=img_url, headers=headers).content #
        # 拼接图片存放地址和名字
        img_path = './小姐姐/' + str(n) + '.jpg'
        # 将图片写入指定位置
        with open(img_path, 'wb') as f:
            f.write(img_data)
        # 图片编号递增
        n = n + 1


if __name__ == '__main__':
    page_number = 10 # 爬取页数
    imgurl_list = [] # 存放图片链接
    # 1. 循环构建每页的链接
    for i in range(0,page_number+1):
        # 页数拼接
        url = f'{i}.html'
        print(url)
        # 2. 获取图片链接
        get_imgurl_list(url,imgurl_list)
    # 3. 下载图片
    get_down_img(imgurl_list)

运行结果:

下载成功了没有报错!!!


原文地址1:https://blog.csdn.net/yuan2019035055/article/details/135049461
参考资料:python中用turtle画一个圆形 https://blog.csdn.net/SXIAOYAN_/article/details/140061099

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值