01-windows下python爬取网页上的图片

2023-11-18

1。首先下载python,安装环境

pycharm、anaconda的下载与安装

移步各个主页下载,一键式安装。
- pycharm: http://www.jetbrains.com/pycharm/
- anaconda: https://www.anaconda.com/download/

2。pycharm的安装

下载软件: pycharm-community-2017.3.3.exe
安装位置:J:\00-pyson\00-pycharm\install

3。anaconda配置

下载:Anaconda3-5.0.1-Windows-x86_64.exe
安装位置:J:\Anaconda3\install

anaconda指的是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。[1] 因为包含了大量的科学包,Anaconda 的下载文件比较大(约 515 MB),如果只需要某些包,或者需要节省带宽或存储空间,也可以使用Miniconda这个较小的发行版(仅包含conda和 Python)。

Python易用,但用好却不易,其中比较头疼的就是包管理和Python不同版本的问题,特别是当你使用Windows的时候。为了解决这些问题,有不少发行版的Python,比如WinPython、Anaconda等,这些发行版将python和许多常用的package打包,方便pythoners直接使用,此外,还有virtualenv、pyenv等工具管理虚拟环境。

个人尝试了很多类似的发行版,最终选择了Anaconda,因为其强大而方便的包管理与环境管理的功能。该文主要介绍下Anaconda,对Anaconda的理解,并简要总结下相关的操作。

Anaconda概述

Anaconda是一个用于科学计算的Python发行版,支持 Linux, Mac, Windows系统,提供了包管理与环境管理的功能,可以很方便地解决多版本python并存、切换以及各种第三方包安装问题。Anaconda利用工具/命令conda来进行package和environment的管理,并且已经包含了Python和相关的配套工具。

这里先解释下conda、anaconda这些概念的差别。conda可以理解为一个工具,也是一个可执行命令,其核心功能是包管理与环境管理。包管理与pip的使用类似,环境管理则允许用户方便地安装不同版本的python并可以快速切换。Anaconda则是一个打包的集合,里面预装好了conda、某个版本的python、众多packages、科学计算工具等等,所以也称为Python的一种发行版。其实还有Miniconda,顾名思义,它只包含最基本的内容——python与conda,以及相关的必须依赖项,对于空间要求严格的用户,Miniconda是一种选择。

进入下文之前,说明一下conda的设计理念——conda将几乎所有的工具、第三方包都当做package对待,甚至包括python和conda自身!因此,conda打破了包管理与环境管理的约束,能非常方便地安装各种版本python、各种package并方便地切换。

win7中,anaconda默认安装在J:\Anaconda3\install,为了能够方便随时随地使用conda,需要在环境变量中添加J:\Anaconda3\install\Scripts。添加后重启cmd,输入conda -V能够正确返回版本,则说明配置成功。

anaconda创建python环境

可以参考其他anaconda教程,也可以在anaconda提供的交互式环境中手动创建,创建的环境存储在C:\ProgramData\Anaconda3\envs下。

  1. Conda是一个开源的包、环境管理器,可以用于在同一个机器上安装不同版本的软件包及其依赖,并能够在不同的环境之间切换
  2. Anaconda包括Conda、Python以及一大堆安装好的工具包,比如:numpy、pandas
  3. Miniconda包括Conda、Python

一般我们下载使用的就是Anaconda,包括了基本的一些工具包,
conda就是用于管理包和环境的命令行工具

注意:我们安装Anaconda后点击下面的加入到系统环境变量,不需要额外安装python的环境

这里写图片描述

可以直接使用命令

这里写图片描述

3. anaconda&pycharm

在pycharm中点击File–>settings–>project–>Project interpreter–>add local

添加anaconda2文件夹中python.exe即可

这里写图片描述

选择自己安装的外部的

这里写图片描述

这里出现一堆才正确

这里写图片描述

4. 案例

新建一个项目

这里写图片描述

#!/user/bin/python3
# -*- coding: UTF-8 -*-
from urllib import request
from bs4 import BeautifulSoup
import re
import time


#r = request.get('http://www.mzitu.com/all/') #像目标url地址发送get请求,返回一个response对象
#print(r.text) #r.text是http response的网页HTML

url = "https://www.zhihu.com/question/22918070"
html = request.urlopen(url).read().decode('utf-8')
print ("Hello, Python!") # 第二个注释
soup = BeautifulSoup(html, 'html.parser')
# print(soup.prettify())

# 用Beautiful Soup结合正则表达式来提取包含所有图片链接(img标签中,class=**,以.jpg结尾的链接)的语句
links = soup.find_all('img', "origin_image zh-lightbox-thumb", src=re.compile(r'.jpg$'))
print(links)

# 设置保存图片的路径,否则会保存到程序当前路径
path = r'J:\00-pyson\img'  # 路径前的r是保持字符串原始值的意思,就是说不对其中的符号进行转义
for link in links:
    print(link.attrs['src'])
    # 保存链接并命名,time.time()返回当前时间戳防止命名冲突
    request.urlretrieve(link.attrs['src'], path + '\%s.jpg' % time.time())  # 使用request.urlretrieve直接将所有远程链接数据下载到本地

问题1:
windows下面不是内部或外部命令,也不是可运行的程序或批处理文件。

解决:设置环境变量,J:\python\Scripts\;J:\python\;
但是仍然报错。最后不知道怎么就好了。

问题2:
ImportError: No module named bs4

解决:

解决方法:

运行时提示ImportError: No module named bs4错误,意思是未找到名为Beautifulsoup4的模块。

写一下Python如何安装模块:

1.下载BS4模块:

http://www.crummy.com/software/BeautifulSoup/bs4/download/4.3/beautifulsoup4-4.3.2.tar.gz

2.解压到Python安装目录下的根目录中:

这里写图片描述

3.运行cmd,进入解压缩后的目录(如果Python默认安装在C盘下,打开cmd之后可以使用cd …语句先返回根目录,再进入Python27\beautifulsoup4-4.3.2)

J:\python\beautifulsoup4-4.3.2>python setup.py install
running install
running build
running build_py
creating build
creating build\lib
creating build\lib\bs4
copying bs4\dammit.py -> build\lib\bs4
copying bs4\diagnose.py -> build\lib\bs4
copying bs4\element.py -> build\lib\bs4
copying bs4\testing.py -> build\lib\bs4
copying bs4\__init__.py -> build\lib\bs4
creating build\lib\bs4\builder
copying bs4\builder\_html5lib.py -> build\lib\bs4\builder
copying bs4\builder\_htmlparser.py -> build\lib\bs4\builder
copying bs4\builder\_lxml.py -> build\lib\bs4\builder

但是还是不行、最后还是修改使用anaconda

程序运行结果

J:\00-pyson\img目录下生成一堆图片

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

01-windows下python爬取网页上的图片 的相关文章

随机推荐

  • MySQL自动重新连接

    最近部署一个系统 后台用线程池来处理请求 而每个线程有一个mysql连接 当系统运行一阶段后 有些请求会出现操作 Internal error 而操作一次可能又会成功 经过多方调试 发现是MySQL连接超时 如果使用了长连接而长期没有对数据
  • Qt程序Release版出现 类似 QEventLoop: Cannot be used without QApplication 问题的终极解决方案

    Qt程序Release版出现 类似 QEventLoop Cannot be used without QApplication 问题的终极解决方案 参考文章 1 Qt程序Release版出现 类似 QEventLoop Cannot be
  • 初学者学习安装Vmware正版软件

    目录 一 获取下载安装 二 安装图文步骤 三 可能出现问题 2分钟无脑 快速安装Vmware 一 获取下载安装 首先说明 官网下载需要登入账号 最新版可以下载试用版 不需要账号 下述为官网的下载路径图示 仅供参考 注意 目前下载都需要账号了
  • Linux系统Could not connect to '192.168.128.XXX' (port 22): Connection failed.

    网上查找了方法 都是 查看防火墙 service iptables status 关闭防火墙 service iptables stop 打开防火墙 service iptables start 打开sshd service sshd st
  • zigbee串口打印无法显示或乱码解决方法

    zigbee串口打印问题 在终端节点向协调器发数据时 在数据流中伴有该节点的网络地址 而有时通过PC端无法打印出来 1 可能是串口软件的问题 用过好几个串口软件 有时会出现停止 或乱码行为 在经过多次换用软件 发现 SecureCRT 这个
  • uni-app watch事件监听三种用法

    1 普通监听 无法监听到第一次绑定的变化
  • stm32----用状态机判断单双击

    一 什么是状态机 状态机 State Machine 是一种用于描述系统状态和状态之间转换关系的数学模型 说白了就是做出某个动作之后变成什么样的状态 比如stm32中的按键控制开关灯 假设灯一开始是关的 当我们按下按键之后 灯亮了 这相当于
  • REST API 设计最佳实践:如何正确使用 HTTP 状态码?

    总的来说 HTTP协议出现以来Web服务也就存在了 但是 自从云计算出现后 才成为实现客户端与服务和数据交互的普遍方法 作为一名开发者 我很幸运能够在工作中使用一些仍然存在的SOAP服务 但是 我主要接触的是REST 这是一种基于资源的AP
  • dev express for asp.net 如何更换主题

    1 如下图点击菜单 2 选择主题然后按 Update Project
  • Python——协程(Coroutine),异步IO

    目录 生成器 Generator yield表达式的使用 生产者和消费者模型 编辑 yield from表达式 协程 Coroutine asyncio coroutine async await 总结 由于GIL的存在 导致Python多
  • Java FileReader

    Java FileReader Java FileReader Java FileReader class is part of java io package Java FileReader类是java io软件包的一部分 The Fil
  • Android自动化测试,5个必备的测试框架

    Appium Appium是一个开源的移动测试工具 支持iOS和Android 它可以用来测试任何类型的移动应用 原生 网络和混合 作为一个跨平台的工具 你可以在不同的平台上运行相同的测试 为了实现跨平台的功能 Appium使用了供应商提供
  • python 抖音采集_python爬取抖音视频的实例详解

    import requests import json import re import os from pprint import pprint as pp import queue class DouYin header accept
  • 全书简介和作者寄语

    巨硬的NumPy 巨硬的NumPy 教程包括两部分 从小白到入门 和 从入门到熟练 从小白到入门 旨在帮助没有基础的同学快速掌握 numpy 的常用功能 保证日常绝大多数场景的使用 从入门到熟练 目的是帮助有进一步需要的同学对 numpy
  • (六)Kubernetes - 手动部署(二进制方式安装)

    Kubernetes 手动部署 5 1 部署Nginx Keepalived高可用负载均衡器 1 1 安装软件包 Master1 Master2 1 2 Nginx配置文件 主备相同 1 3 keepalived配置文件 Master1 1
  • mysql jpa 不要自动建表,如何让Hibernate在与JPA一起使用时自动在数据库中创建表?...

    I am new to JPA And for now I am trying to understand standard examples I was reading online and saw a few stackoverflow
  • vue面试题汇总

    HTML篇 CSS篇 JS篇 TypeScript篇 React篇 微信小程序篇 前端面试题汇总大全 含答案超详细 HTML JS CSS汇总篇 持续更新 前端面试题汇总大全二 含答案超详细 Vue TypeScript React 微信小
  • pytorch---之item()

    torch Tensor item 坑 注意只能是一个值 适合返回loss acc
  • 设计模式概念学习

    文章目录 创建类型 单例模式 饿汉 懒汉 openbmc项目实际应用 工厂方法 简单工厂方法 openbmc项目实际应用 抽象工厂 以下为学习时对各种设计模式的简单理解 还没有深入学习和实际应用 推荐1个 很棒的网站学习设计模式 每个模式都
  • 01-windows下python爬取网页上的图片

    1 首先下载python 安装环境 pycharm anaconda的下载与安装 移步各个主页下载 一键式安装 pycharm http www jetbrains com pycharm anaconda https www anacon