首页 > 编程语言 >Python爬虫基本流程

Python爬虫基本流程

时间:2024-05-23 22:58:02浏览次数:19  
标签:浏览器 请求 Python 流程 爬虫 requests 数据 response

Python爬虫是指利用Python编程语言编写的程序,用于从网页上获取数据。通常,爬虫程序会模拟人类用户在网页上的行为,发送HTTP请求获取网页内容,然后解析这些内容以提取所需信息。常用的爬虫库包括requests用于发送HTTP请求,BeautifulSoup用于解析HTML或XML内容,以及Scrapy用于构建更复杂的爬虫项目。通过爬虫,可以自动化地收集、分析和存储网络上的数据,用于各种目的,例如数据挖掘、搜索引擎索引、监控和分析等。

"""

爬虫实现基本流程:

一、数据来源分析

    1.明确需求

    **明确采集的网站以及数据内容**

    *网址:

    *数据:视频相关信息:标题/播放量/弹幕量/评论/作者...

    2.抓包分析(在浏览器中进行操作)

    **通过浏览器自带工具(开发者工具)进行数据抓包:分析我们需要数据可以请求哪个网址能够得到

    1.打开开发者工具

        F12/右键点击检查 选择 network(网络)

    2.刷新网页/点击下一页查看数据

        点击第二页/下一页(爬虫批量采集数据,进行翻页操作;最好从第二页开始分析,第一页有可能是静态页)

    3.通过关键字搜索找到对应数据包链接(位置)

        关键字:我们需要的数据(标题)

        请求网址:

        请求方法:GET

二、代码实现步骤

    1.发送请求 (内容基本可以复制)

    *模拟浏览器(字典接受参数内容)

     主要是使用开发者工具中:请求标头 参数内容

     常用:cookie/referer/host/User-Agent(UA)

    *请求网址

    *发送请求(请求方法&请求参数)

  def GetRespon(url,data):

    # 模拟浏览器(伪装)

    headr={

        "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64)"

        }

    response = requests.get(url=url,params=data,headers=headr)

    return response

    2.获取数据

    *response.text

         获取响应的文本数据

    *response.json()

        响应数据返回内容{}/[{}]类似这样的形式 就直接获取json()

    *response.content

        保存 图片/音频/视频/特定格式文件 的时候,获取content表示获取二进制数据

    3.解析数据

    4.保存数据

"""

实例:

import requests 
from bs4 import BeautifulSoup
head={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64)'}
res=requests.get('https://api.bilibili.com/x/v1/dm/list.so?oid=764406856',headers=head)
soup=BeautifulSoup(res.content,'html.parser')
danmus = soup.findAll('d')
for j in danmus:
    # print(j.string)
    with open("弹幕.txt",'a',encoding='utf-8') as f:
        f.write(j.string)
        f.write('\n')
        print(j.string)

        这个Python脚本使用了requests库向Bilibili的一个API端点发送GET请求,从中获取评论(弹幕)的XML数据。然后,它使用BeautifulSoup来解析XML内容。

        它从XML内容中提取所有的<d>标签,这些标签代表着单个评论。然后,它遍历每条评论,将其追加到名为"弹幕.txt"的文件中,并将每条评论打印到控制台。

  head变量定义了一个User-Agent头部,以模仿一个Web浏览器。这有时有助于绕过限制或从否则会阻止非浏览器流量的网站获取内容。

 

标签:浏览器,请求,Python,流程,爬虫,requests,数据,response
From: https://blog.csdn.net/Xxy_1008/article/details/139104334

相关文章

  • Python爬虫--爬取文字加密的番茄小说
    一、学爬虫,看小说很久没有去研究爬虫了,借此去尝试爬取小说查看小说,发现页面返回的内容居然都是加密的。 二、对小说目录进行分析通过分析小说目录页面,获取小说名称等内容引用parsel包,对页面信息进行获取url="https://fanqienovel.com/reader/7276663560427471412?e......
  • Python生成随机验证码
    importrandomfromPILimportImage,ImageDraw,ImageFont,ImageFilterdefcheck_code(width=120,height=30,char_length=5,font_file='Monaco.ttf',font_size=28):code=[]"""Image.new方法用于创建一个新的图像对象。mo......
  • 01-Python 图片转字符画
    fromPILimportImage"""将图片转换为字符画图片转字符画是将一张图片转换成由字符组成的图像,通常用于在命令行界面或者文本编辑器中显示。这个过程主要包括以下几个步骤:-读取图片文件-将图片转换为灰度图像-调整图片的尺寸以适应字符画的宽度......
  • 给大家分享一套非常棒的python机器学习课程
    给大家分享一套非常棒的python机器学习课程——《AI小天才:让小学生轻松掌握机器学习》,2024年5月完结新课,提供配套的代码+笔记+软件包下载!学完本课程,可以轻松掌握机器学习的全面应用,复杂特征工程,数据回归,分类,算法的项目实战应用,以小学生的视角和知识储备即可学会。课程名字:AI小天才......
  • Python多线程案例分析
    接下来,我们将在之前的基础上进一步扩展多线程爬虫案例,增加以下功能:1.动态URL发现与添加:爬虫在解析页面时,能够发现并添加新的URL到队列中。2.设置请求头:模拟浏览器行为,设置请求头中的`User-Agent`。3.使用会话:使用`requests.Session()`对象来保持连接,提高效率。4.避免重......
  • Python 将PowerPoint (PPT/PPTX) 转为HTML
    1.Python 将PowerPoint文档转为HTML格式要实现该转换,仅需加一个.ppt或.pptx文档,然后使用 Presentation.SaveToFile() 方法将其另存为HTML格式。fromspire.presentation.commonimport*fromspire.presentationimport*#加载PPT文档ppt=Presentation()ppt.L......
  • 众测行为流程
    1、项目组提出测试需求和目的,确定众测负责人项目/需求背景、项目级别、时间阶段规划、产品目标用户 2、需求了解,初筛适合众测的模块,指定范围开放式众测产品原型名词解释、状态枚举、提示文案、模块划分、功能列表一级二级三级及功能描述复杂操作的规则和举例产品架构、......
  • 利用Python训练手势模型代码
    importcv2ascvimportosimportnumpyasnpfromsklearn.decompositionimportPCAfromsklearn.model_selectionimporttrain_test_splitfromsklearn.svmimportSVCfromsklearn.treeimportDecisionTreeClassifierfromsklearn.neighborsimportKNeighborsClassifie......
  • Gin 框架的执行流程
     Gin框架是一个用Go语言编写的高性能Web框架,它基于httprouter实现,具有快速、简洁和高效的特性。以下是Gin框架处理HTTP请求的大致执行流程:1初始化Gin引擎:用户创建一个新的gin.Engine实例,这通常是应用程序的主路由器。 用户定义路由,这些路由是通过engine.Use()添加......
  • 爬虫方式(模拟用户)
    基于rake的爬取代码require'nokogiri'require'json'require'open-uri'namespace:spider_sbi_code_infodotasktable_data::environmentdooptions=Selenium::WebDriver::Chrome::Options.newoptions.add_argument('--he......