Python爬虫(基本流程)

1. 确定目标和范围

  • 明确需求:确定你需要从哪些网站抓取哪些数据。
  • 合法性:检查目标网站的robots.txt文件,了解哪些内容可以被抓取。
  • 数据范围:确定爬取数据的起始和结束点,比如时间范围、页面数量等。

2. 选择合适的工具库

  • 请求库:如requests或urllib,用于发送HTTP请求。
  • 解析库:如BeautifulSoup(适用于HTML和XML)、lxml(速度快,适用于大型文档)、re(正则表达式,用于复杂字符串处理)。
  • 异步库:如aiohttp、asyncio,用于提高爬虫效率。
  • 存储库:如pandas(用于数据处理和存储为CSV或Excel文件)、sqlite3或pymysql(用于数据库存储)。

3. 发送请求

  • 使用requests或其他HTTP库发送GET或POST请求到目标网站。
  • 可能需要处理Cookies、Headers、Session等信息。
  • 应对反爬虫机制,如设置User-Agent、使用代理IP等。

4. 解析数据

  • 使用BeautifulSoup或lxml等库解析HTML或XML文档。
  • 提取所需的数据,如文本、图片链接、表格数据等。

5. 存储数据

  • 将提取的数据保存到本地文件(如CSV、JSON)或数据库中。
  • 可以使用pandas进行数据处理后再保存。

6. 异常处理

  • 编写异常处理代码以应对网络问题、解析错误等情况。
  • 可以使用try-except语句块来处理这些异常。

示例

爬取一个浏览器的页面:

  • 1、通过浏览器搜索自己想要的一个页面,按F12,找到网络;
  • 2、向上拉动,找到名称栏中的第一个,单机打开;
  • 3、可以在标头里看到请求URL请求方式,复制URL(需要用到);
  • 4、在表头的最下面有"User-Agent",也复制下来

在这里插入图片描述
在这里插入图片描述
代码操作:

# 导入 requests 包
import requests
if __name__ == '__main__':# 模仿浏览器上网# UA伪装 让你认为我是一个浏览器(应对反爬虫机制)粘贴复制好的User-Agenthead = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0"}# 1、指定url  粘贴复制好的URLurl = "https://www.sogou.com/web?query=%E6%9D%A8%E5%B9%82&_asf=www.sogou.com&_ast=&w=01019900&p=40040100&ie=utf8&from=index-nologin&s_from=index&sut=3151&sst0=1721289914995&lkt=4%2C1721289911845%2C1721289912426&sugsuv=1721288239060070&sugtime=1721289914995"# 2、发送请求 返回的数据在response对象内response = requests.get(url, headers=head)   # 这是get请求方式# 3、获取你想要的数据print(response.text)

如何打开?

  • 1、在项目中创建一个html文件
  • 2、将获取到的数据全部放入到html文件中
  • 3、右上角会出现浏览器的小标识,选择想用的浏览器,单机打开(不需要管有没有报错)

在这里插入图片描述
打开后就能跳到你之前所搜索的页面
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

科研绘图系列:R语言微生物堆积图(stacked barplot)

介绍 堆叠条形图是一种数据可视化图表,它通过将每个条形分割成多个部分来展示不同类别的数值。每个条形代表一个总体数据,而条形内的每个部分则代表该总体数据中不同子类别的数值。这种图表特别适合展示整体与部分的关系,以及各部分在整体中的比例。 特点: 多部分条形:每…

框架设计MVP

重点: 1.presenter里面包含view和model 2.和MVC不同的是View和Model之间不进行交互 3.view包含presenter,view通过presenter反向处理逻辑。 链接: MVP简单实现_安卓mvp presenter-CSDN博客 Model.h #pragma once //Model数据处理器 class Model { …

动漫风格动漫404网站维护HTML源码

源码介绍 动漫风格动漫404网站维护HTML源码,源码由HTMLCSSJS组成,记事本打开源码文件可以进行内容文字之类的修改,双击html文件可以本地运行效果,也可以上传到服务器里面 效果预览 源码下载 动漫风格动漫404网站维护HTML源码

GSAP动画魔法:解锁网页设计的无限创意与动感

GSAP(GreenSock Animation Platform)是一个强大的JavaScript动画库,用于在Web应用程序中创建高性能和复杂的动画效果,其提供了一套丰富的API和工具,使开发者能够轻松地创建流畅、交互式的动画,涵盖了从简单…

Shader入门精要总结(一)渲染流水线

渲染流水线的最终目的在于生成或者说是渲染一张二维纹理,即我们在电脑屏幕上看到的所有效果。 流水线主要分成三个阶段:应用阶段,几何阶段,光栅化阶段。(概念) 一.概述 1. 应用阶段 这个阶段由应用主导&am…

Debian Linux下rclone挂载谷歌云盘碰到的坑

可能是明月好久没有使用境外服务器挂载境外的云盘缘故吧,今天一个代维客户需要他的Linux服务器挂载谷歌云盘好进行云备份,本来是个很简单的事儿,没想到在rclone连接谷歌云盘的时候卡壳了,可是把明月给难为坏了,搜索到的简体中文教程倒是很多,但没有一个提到这个“坑”,最…

秋招突击——7/20——科大讯飞笔试相关——提前{图像叠加、世界杯积分问题、直角三角形个数}——正式{持续输出中位数,二次幂和三次幂的序列表示}

文章目录 引言提前图像叠加世界杯积分问题个人实现参考实现 直角三角形个数个人实现 正式等待时间期望值中位数输出个人实现 二次幂和三次幂序列个人实现 总结 引言 昨天用了牛客网做了一下作业帮的笔试,做的一塌糊涂,但是提醒我要练习使用牛客网的环境…

基于Matlab的数据可视化

基于Matlab的数据可视化 一、二维图形的绘制(一)基本图形函数(1)plot函数(2)fplot函数(3)其他坐标系的二维曲线 (二)图形属性设置(1)线…

Linux网络:应用层协议HTTP(一)

一、什么是HTTP协议 虽然我们说, 应用层协议是我们程序猿自己定的. 但实际上, 已经有大佬们定义了一些现成的, 又非常好用的应用层协议, 供我们直接参考使用. HTTP(超文本传输协议)就是其中之一。 在互联网世界中,HTTP(HyperText Transfer Protocol&…

C#中的栈和队列

什么是栈 栈和队列是非常重要的两种数据结构,在软件设计中应用很多。栈和队列也是线性结构,线性表、栈和队列这三种数据结构的数据元素以及数据元素间的逻辑关系完全相同,差别是线性表的操作不受限制,而栈和队列的操作受到眼制。栈的操作只能在表的一端进行,队列的插入操作在表…

安卓篇-unidbg初步测试

前言:目前app的进度是c层的md5魔改 已经做好,又套了一层java层的加密。刚好可以再熟悉一下unidbg 最新版的app ,作为demo测试一下。 分析先看下app 的反编译的结果,很明显,源码很清晰 ,之前的混淆方式一点用没有。 然后跳过去 /* loaded from: classes4.dex */ public c…

FPGA实验5:4位加法计数器

实验目的及要求 掌握时钟信号、进程和BUFFER端口的运用;了解计数器的设计、仿真和硬件测试,进一步熟悉VHDL语句、语法及应用等。 实验原理 运用Quartus II 集成环境下的VHDL文本设计方法设计4位加法计数器,进行波形仿真和分析、引脚分配…

4 Java的基本程序设计结构(基本语法3)- 字符串、面向对象(进阶)

文章目录 前言一、java中的 究竟比较的是什么?二、字符串1 String(1)String的两种构造方式(2)字符数组转字符串、字节数组转字符串(3)字符串的 拼接(4)字符串的内存结构…

【Android面试八股文】荣耀面试算法题:输入一个N阶方阵(0<N<10),输出此方阵顺时针旋转M(0<=M<=10000)次后的方阵

文章目录 1. 算法题:输入一个N阶方阵(0<N<10),输出此方阵顺时针旋转M(0<=M<=10000)次后的方阵1.1 题目描述1.2 算法实现1.2.1 步骤说明:1.2.2 算法实现1.2.3 代码实现:1.2.4 程序说明:1.2.5 示例详细讲解如何将一个矩阵顺时针旋转90度1. 算法题:输入一个N阶方…

Spring -- 三层架构

T04BF &#x1f44b;专栏: 算法|JAVA|MySQL|C语言 &#x1faf5; 今天你敲代码了吗 应用分层 介绍 在阿里的开发手册里,关于工程结构部分,定义的常见工程的应用分层结构 那么什么是应用分层呢? 应用分层是一种软件开发设计思想,他将应用程序分层N个层次.这N个层次分别负责各…

Oracle小白菜鸟从入门到精通教程

前言 Oracle公司&#xff08;甲骨文&#xff09;是全球最大的信息管理软件及服务供应商&#xff0c;成立于1977年&#xff0c;总部位于美国加州Redwood shore&#xff0c;面向全球开放oracle认证。Oracle开发的关系数据库产品因性能卓越而闻名&#xff0c;Oracle数据库产品为财…

Hi6274 反激式20瓦电源芯片

HI6274为高性能多模式 PWM 反激式20瓦电源芯片。HI6274较少的外围元器件、较低的系统成本可设计出高性能的"无Y"开关电源。HI6274提供了极为全面和性能优异的智能化保护功能&#xff0c;包括逐周期过流保护、过载保护、软启动、芯片过温保护、可编程输出过压保护功能…

【Langchain大语言模型开发教程】记忆

&#x1f517; LangChain for LLM Application Development - DeepLearning.AI 学习目标 1、Langchain的历史记忆 ConversationBufferMemory 2、基于窗口限制的临时记忆 ConversationBufferWindowMemory 3、基于Token数量的临时记忆 ConversationTokenBufferMemory 4、基于历史…

世界启动Ⅷ--AI视频制作-方案与创新

1.文本/图片生成视频顾名思义&#xff0c;就是输入一段文本描述/上传一张图片即可生成对应的视频。我们常见的Runway、Pika、NeverEnds、Pixverse、svd等都属于此类。比如runway的影视风格Pika的动漫风格NeverEnds的人像模特当然还有一些外延应用&#xff0c;例如最近比较火的阿…

《从C/C++到Java入门指南》- 17.命令行参数

命令行参数 一直写代码的童鞋可能留意到了&#xff0c;main函数中会传入一个String args[]的字符串数组。 这个数组由JVM接收用户输入并传给main函数。 import java.util.*; public class Main {public static void main(String[] args) {for (String arg : args) {System.out…