如何用Python写个网页爬取程序

如何用Python写个网页爬取程序

  • 准备开发工具
  • 安装Python
  • Python安装pip
  • Pip安装爬取插件
  • 准备好网页地址
  • 代码实现

准备开发工具

额,作者用的是vscode。具体怎么安装自行百度哈,这个都不会建议就不要学爬取了。
不忍心藏着也,给你个方法吧

  • vscode下载
  • windows如何安装vscode

安装Python

怎么安装?这个不会建议也不要学爬取了。算了出于善良,给你们指条明路。

  • windows如何下载Python
  • 如何配置Python环境变量
  • vscode如何配置Python开发环境

Python安装pip

在开发工具配置好py环境后直接上代码就完事了。

 python.exe -m pip install --upgrade pip //py 更新pip
 python.exe -m pip install  //py 安装pip
 py -m pip install  //这是一个缩写格式

Pip安装爬取插件

为了快速讲解,直接上代码吧

pip install requests //安装请求插件
pip install beautifulsoup4  //直接抽取图片内容的插件

准备好网页地址

知道你们想偷懒,送你们了,不谢

https://www.vcg.com/creative/

代码实现

我们知道网页中图片的格式一般是

<img src="https://xxx.com/xx.jpg/img/png/webp">

但很不幸有些网站的内容并非如此,我们来看下如下代码爬取的内容

import requests
url = "https://www.vcg.com/creative/"
response = requests.get(url)
if response.status_code == 200:
    content = response.content.decode("utf-8")
    print(content)
else:
    print("Failed to retrieve content from", url)

在这里插入图片描述
网页中图片居然是这种格式显示的

<source data-srcset="//alifei01.cfp.cn/cms/image/image/90bdf6ac7070416ca036f869617512f1.jpg?x-oss-process=image/format,jpg" type="image/jpg"/>

针对上诉该如何是好呢?
这个就要用到我们上诉安装的beautifulsoup4 抽取图片连接的工具,来看看怎么用吧。先给你们看下效果,不懂再看下方解释
在这里插入图片描述

代码解释

import requests
from bs4 import BeautifulSoup
url = "https://www.vcg.com/creative/"
response = requests.get(url)
if response.status_code == 200:
# 获取网页内容
    html = response.content
    # 解析html格式网页,可以是其他格式
    soup = BeautifulSoup(html, 'html.parser')
    # 根据图片标签获取标签属性内容。正常情况都是<img src="">这种,而我们的是<source data-srcset="">
    #img_tags = soup.find_all('img')
    img_tags = soup.find_all('source')
    for img in img_tags:
        print(img['src'])
        # print(img['data-srcset'])
else:
    print("Failed to retrieve content from", url)

当然通过上诉代码我们可以爬取不同的网页格式内容。以及多种格式的标签图片,我们取个并集就好了。

爬取的内容

//alifei02.cfp.cn/cms/image/image/58eab40df6b7477781340130f124724d.jpg?x-oss-process=image/format,webp
//alifei02.cfp.cn/cms/image/image/58eab40df6b7477781340130f124724d.jpg?x-oss-process=image/format,jpg
//alifei03.cfp.cn/cms/image/image/247d928e210c42f5897d2ca9d325a8ad.jpg?x-oss-process=image/format,webp
//alifei03.cfp.cn/cms/image/image/247d928e210c42f5897d2ca9d325a8ad.jpg?x-oss-process=image/format,jpg
//alifei04.cfp.cn/cms/image/image/17f075e1c19f40cfaf3b3f7e16df211e.jpg?x-oss-process=image/format,webp
//alifei04.cfp.cn/cms/image/image/17f075e1c19f40cfaf3b3f7e16df211e.jpg?x-oss-process=image/format,jpg
//alifei05.cfp.cn/cms/image/image/0060aa0e0c0f45fdbb4127167bff2a34.jpg?x-oss-process=image/format,webp
//alifei05.cfp.cn/cms/image/image/0060aa0e0c0f45fdbb4127167bff2a34.jpg?x-oss-process=image/format,jpg
//alifei01.cfp.cn/cms/image/image/b437cf301cd2488e8c9a9c6082605bfa.jpg?x-oss-process=image/format,webp
//alifei01.cfp.cn/cms/image/image/b437cf301cd2488e8c9a9c6082605bfa.jpg?x-oss-process=image/format,jpg
//alifei02.cfp.cn/cms/image/image/7a437c929f2e43a9bc808054f27c984a.jpg?x-oss-process=image/format,webp
//alifei02.cfp.cn/cms/image/image/7a437c929f2e43a9bc808054f27c984a.jpg?x-oss-process=image/format,jpg
//alifei03.cfp.cn/cms/image/image/23b3a51cd24547a7b9573f39ebb88d39.jpg?x-oss-process=image/format,webp
//alifei03.cfp.cn/cms/image/image/23b3a51cd24547a7b9573f39ebb88d39.jpg?x-oss-process=image/format,jpg
//alifei01.cfp.cn/cms/image/image/4b5bb2f1faff4b148e92225adbf696fe.jpg?x-oss-process=image/format,webp
//alifei01.cfp.cn/cms/image/image/4b5bb2f1faff4b148e92225adbf696fe.jpg?x-oss-process=image/format,jpg
//alifei02.cfp.cn/cms/image/image/756a48a633c54bf89de525cf28ed411c.jpg?x-oss-process=image/format,webp
//alifei02.cfp.cn/cms/image/image/756a48a633c54bf89de525cf28ed411c.jpg?x-oss-process=image/format,jpg

假设我们取第一条

//alifei02.cfp.cn/cms/image/image/58eab40df6b7477781340130f124724d.jpg?x-oss-process=image/format,webp

这个在网页怎么访问??
很简单做个字符串的截取拼接就好了,去掉// 拼接https 去掉参数。如下

https://alifei02.cfp.cn/cms/image/image/58eab40df6b7477781340130f124724d.jpg

假设我们循环存入数据库。。。【奸笑且猥琐】
可是版权怎么办。。。【开始垂头丧气】
不管了,为了理想。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。。。。。。
也不可以做违法的事。。。。。。。。。。。。。。
自己用用就好,除非人家给你版权了,那我们大可放开手脚的干

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/25387.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

计算机系统漫游

重点理解部分&#xff1a; 系统硬件&#xff1a;对硬件如处理器、存储器、I/O设备有一个基本的认识&#xff0c;理解它们的基本工作原理以及它们是如何协同工作的。Hello&#xff0c;World程序运行的过程&#xff1a;了解一个C程序如何从源代码到最终在计算机上运行的全过程。…

模仿抖音直播商城带货打赏功能做一个app系统

随着人们生活和互联网的高度整合&#xff0c;越来越多的人开始转变自身消费模式&#xff0c;从实体店购物逐渐转向足不出户即可享受购物快感的网上购物。许多企业看到了电子商务背后隐藏的巨大价值&#xff0c;想要寻找合适的开发商建立属于自己的电商直播系统&#xff0c;那么…

2021-06-10 51单片机,键控流水灯——中断方式

缘由https://ask.csdn.net/questions/7444779?spm1005.2025.3001.5141 #include "reg52.h" sbit K1 P1^5; sbit K2 P1^6; sbit K3 P1^7; bit kk0; void zdsz() {EAEX0IT01; } void main() {unsigned char Xd0;unsigned int ys4747,d10;zdsz();while(1){if(!ys)…

CodeForces..学习读书吧.[简单].[条件判断].[找最小值]

题目描述&#xff1a; 题目解读&#xff1a; 给定一组数&#xff0c;分别是 “时间 内容”&#xff0c;内容分为00&#xff0c;01&#xff0c;10&#xff0c;11四种&#xff0c;求能够得到11的最小时间。 解题思路&#xff1a; 看似00&#xff0c;01&#xff0c;10&#xff0…

C语言中的类型转换

C语言中的类型转换 隐式类型转换 整型提升 概念&#xff1a; C语言的整型算术运算总是至少以缺省&#xff08;默认&#xff09;整型类型的精度来进行的为了获得这个精度&#xff0c;表达式中字符和短整型操作数在使用之前被转换为普通整型&#xff0c;这种转换成为整型提升 如…

自学大语言模型之BERT

BERT 模型由 Jacob Devlin、Ming-Wei Chang、Kenton Lee 和 Kristina Toutanova在BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding中提出。它是一种双向变换器&#xff0c;使用掩码语言建模目标和对包含多伦多图书语料库和维基百科的大型语…

C语言---初始C语言

1、初始C语言 1、编译器主要有&#xff1a;Clang、GCC、WIN-TC、MSVC、Turbo C等 什么是编译&#xff1f; test.c----------------------------->test.exe 这个过程需要经过编译、链接等过程&#xff0c;而众多编译器实现的功能就是把我们写的test.c进行编译。 2、VS20…

利用栈和队列共同解决迷宫问题

文章目录 什么是迷宫问题&#xff1f;如何解决迷宫问题&#xff1f;DFS&#xff08;深度优先搜索&#xff09;BFS&#xff08;广度优先搜索&#xff09; 总结 什么是迷宫问题&#xff1f; 迷宫问题是一道经典的算法问题&#xff0c;旨在寻找一条从起点到终点的最短路径。通常迷…

桶排序 — 计数排序和基数排序

计数排序 int类型数组&#xff0c;其中存的是员工的年龄。比如说16 - 150。对于这样的数据来讲&#xff0c;数据状况是受限的。此时如果将数组从小到大进行排序&#xff0c;该如果实现&#xff1f; 这个实现很简单&#xff0c;实现一个统计数组范围从 0 ~ 150&#xff0c;新数组…

Flume的安装和使用

安装Flume 1.1访问Flume的官网&#xff08;http://flume.apache.org/download.html&#xff09;&#xff0c;下载Flume安装apache-flume-1.9.0-bin.tar.gz。或者下载我的百度网盘资源。把安装文件解压缩到windows操作“D:\”目录下&#xff0c;然后执行如下命令测试是否安装成…

【JavaSE】Java基础语法(十六):抽象类

文章目录 1. 抽象类的概述2. 抽象类的特点3. 抽象类的实用价值4. 抽象类的案例 1. 抽象类的概述 当我们在做子类共性功能抽取时&#xff0c;有些方法在父类中并没有具体的体现&#xff0c;这个时候就需要抽象类了&#xff01; 在Java中&#xff0c;一个没有方法体的方法应该定义…

在Linux设备上让程序在任意目录都能执行

目录 0. 前言1. 编写代码2. 创建软链接3. 其他Linux文章 0. 前言 在Ubuntu上使用espidf中往往需要先设置环境变量&#xff0c;再执行export.sh&#xff0c;对环境装的乱七八糟的我造成了很大的不便我希望无论我在哪个目录&#xff0c;都能快速执行某个命令 我先是使用了编写b…

微信小程序开发实战 ⑨(TabBar)

作者 : SYFStrive 博客首页 : HomePage &#x1f4dc;&#xff1a; 微信小程序 &#x1f4cc;&#xff1a;个人社区&#xff08;欢迎大佬们加入&#xff09; &#x1f449;&#xff1a;社区链接&#x1f517; &#x1f4cc;&#xff1a;觉得文章不错可以点点关注 &#x1f4…

【Unittest】自动化测试框架核心要素

1、什么是Unittest框架&#xff1f; python自带一种单元测试框架 2、为什么使用UnitTest框架&#xff1f; >批量执行用例 >提供丰富的断言知识 >可以生成报告 3、核心要素&#xff1a; 1). TestCase&#xff08;测试用例&#xff09; 2). TestSuite(测试套件)…

WalkRE--刷图流程(超具体)

1、打开WalkRE软件&#xff0c;界面如下&#xff1a; 2、选择“根据模板新建工程”。操作如下&#xff1a; 3、导入数据。需要准备好dxf格式的CAD地形数据。操作如下&#xff1a; 在空白处右键&#xff0c;先关闭所有层&#xff08;大部分层在刷图时用不上&#xff0c;仅打开刷…

如何监控电动车充电桩能耗?

一 背景 随着新能源汽车的快速发展&#xff0c;像特斯拉、BYD、蔚来、小鹏和理想等品牌的电动汽车在我们的日常生活中越来越多了&#xff0c;可见电动汽车如今已逐渐被我们所认可了。同汽油车需要加油一样&#xff0c;电动汽车需要充电&#xff0c;如此一来&#xff0c;电动汽…

C++进阶 —— multimap

目录 一&#xff0c;multimap介绍 类pair 函数模板make_pair 二&#xff0c;multimap使用 一&#xff0c;multimap介绍 multimap是关联式容器&#xff0c;按照特定顺序存储键值对<key、value>&#xff0c;其中多个键值对之间的key可以重复&#xff1b;键key通常用于排…

供应链 | 在线平台的研究与思考(一):销售渠道与模式选择

封面图来源&#xff1a; https://www.pexels.com/zh-cn/photo/4968391/ 编者按 当前&#xff0c;电商平台主要采用两种销售模式&#xff1a;代理和分销。商家根据自身情况选择线上或线下渠道&#xff0c;而电商平台会根据不同的线上商家选择适当的分销模式。本期编者精选的两…

C++环形缓冲区设计与实现:从原理到应用的全方位解析

C环形缓冲区设计与实现&#xff1a;从原理到应用的全方位解析 一、环形缓冲区基础理论解析&#xff08;Basic Theory of Circular Buffer&#xff09;1.1 环形缓冲区的定义与作用&#xff08;Definition and Function of Circular Buffer&#xff09;1.2 环形缓冲区的基本原理&…

Smartbi“三步走”构建智慧经营分析平台,实现国有企业监管报送和数智化转型

01. 现状与痛点 — 一直以来&#xff0c;国资国企都是促进我国经济高速发展的领头羊&#xff0c;但近年来受疫情冲击和国际经济下行影响&#xff0c;国资企业经营面临较大压力&#xff0c;同时为实现国有企业高质量发展&#xff0c;国务院国资委下发一系列政策要求&#xff…