渗透利器-kali工具 (第四章-5) 爬虫入门

ops/2024/12/12 20:28:48/

Python爬虫入门[spider]

1,交换机制:

  服务器与本地的交换机制:

    http协议:客户端与服务器一种会话的方式。

    客户端-------[requests[请求]]------->服务器

    客户端-------[response[响应]]------>服务器

  HTTP请求:

    向服务器请求的时候使用request请求,包含了很多的不同的方法:主要用到[GET、POST]

  HTTP响应:

    向服务器提出request之后,服务器会返回给我们一个Response[我们请求的这个网页]

    RESPONST:

      Status_code:[状态码]200 网页中的元素

      Status_code:[状态码]403/404

    可以打开谷歌,加载一个网站然后点击检查>>>nerwork>>>刷新

2,网页解析:

  1.网页解析:需要使用到[bs4]

    from bs4 import BeautifulSoup

    import requests

    #解析网页内容

    url = "https://www.baidu.com"

    wb_data = requests.get(url)

    soup = BeautifulSoup(wb_data.text,'lxml')

    print(soup)

  2.描述要爬取的元素位置:

    eg:标题[在网页中找到它在的位置] >>>右键复制selector

      titles = soup.select('#sy_load > ul:nth-child(2) > li:nth-child(1) > div.syl_info > a')

      print(titles)

      解释:

        #sy_load > ul:nth-child(2) > li:nth-child(1) > div.syl_info:标签的位置:selector

        a:查找a标签

    向上查找[上级标签]class名:

      titles = soup.select('div.syl_info> a')

      print(titles)

      解释:

        div.syl_info   标签的class名

        a:查找a标签

  3.bs4中具有一个BeautifulSoup安装方法:

    1.安装:pip install beautifulsoup4

    2.可选择安装解析器:

      pip install lxml [一般安装这个即可]

      pip install html5lib

    3.使用:

      from bs4 import BeautifulSoup

      import requests

      req_obj = requests.get('https://www.baidu.com')

      soup = BeautifulSoup(req_boj.txt,'lxml')

      不使用BeautifulSoup,只返回状态码

      使用BeautifulSoup,会将站点,html代码返回。

    4.经常使用到的一些方法:

      from bs5 import BeautifulSoup

      import  requests,re

      a = requests.get('https://www.baidu.com')

      b = BeautifulSoup(a.txt,'lxml')

      print(b.title)           输入title找标签只找一个

      print(b.find('title'))    输入title找标签只找一个

      print(b.find_all('div'))    找所有div标签

      c = soup.div       创建div的实例化

      print(c['id'])         查看标签的id属性  

      print(c.attrs)       查看标签的所有属性

      d = soup.title      创建title的实例化

      print(d.string)      获取标签里的字符串

      e = soup.head       创建head的实例化

      print(e.title)       获取标签,再获取子标签

      f = soup.body      创建body实例化

      print(f.contents)     返回标签子节点,以列表的形式返回

      g = soup.title       创建title实例化

      print(g.parent)      查找父标签

      print(soup.find_all(id='link2'))

3,爬虫所需的模块和库:

  库:requests.bs4

  模块:BeautifulSoup

  1.抓取:requests

  2.分析:BeautifulSoup

  3.存储:

4.目录扫描工具原理实战:

  import requests

  import sys

  url = sys.argv[1]

  dic = sys.argv[2]

  with open(dic,'r') as f:

    for i in f.readlines()    一行读取

      i = i.strip()      去除空格

      r = requests.get(url+i)

      if r.stats_code == 200:

        print('url:'+r.url)


http://www.ppmy.cn/ops/141333.html

相关文章

【HarmonyOS实战开发】鸿蒙JS崩溃分析

当未处理的JS异常导致应用意外退出时,应用会生成对应的JS崩溃日志文件,开发者可通过错误日志查看引起崩溃的代码位置及分析应用崩溃的原因。本文将分别介绍JS崩溃分析思路以及典型分析案例。 一、日志信息 以下是崩溃日志信息中对应字段解释。 Device…

F5-TTS文本语音合成模型的使用和接口封装

F5-TTS文本语音生成模型 1. F5-TTS的简介 2024年10月8日,上海交通大学团队发布,F5-TTS (A Fairytaler that Fakes Fluent and Faithful Speech with Flow Matching) 是一款基于扩散Transformer和ConvNeXt V2的文本转语音 (TTS) 模型。F5-TTS旨在生成流…

go语言的成神之路-筑基篇-gin常用功能

第一节-gin参数绑定 目录 第一节-?gin参数绑定 ShouldBind简要概述 功能: 使用场景: 可能的错误: 实例代码 效果展示 第二节-gin文件上传 选择要上传的文件 选择要上传的文件。 效果展示? 代码部分 第三节-gin请求重定向 第…

MATLAB 点云生成凸包,计算表面积和体积(94)

MATLAB 点云生成凸包,计算表面积和体积(94) 一、算法介绍二、算法实现1.代码2.结果一、算法介绍 利用点云生成了三维凸包,并且计算了凸包的表面积和体积等有用信息,下面是具体的实现代码和计算结果 二、算法实现 1.代码 代码如下(示例): % 加载点云数据 input_cl…

《探索形象克隆:科技与未来的奇妙融合》

目录 一、什么是形象克隆 二、形象克隆的技术原理 三、形象克隆的发展现状 四、形象克隆的未来趋势 五、形象克隆的应用场景 六、形象克隆简单代码案例 Python 实现数字人形象克隆 Scratch 实现角色克隆效果(以猫为例) JavaScript 实现 Scratc…

备赛蓝桥杯--算法题目(4)

1. 相交链表 160. 相交链表 - 力扣(LeetCode) class Solution { public:ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {int cnt0;ListNode* h1headA;ListNode* h2headB;while(h1->next){h1h1->next;cnt;}while(h2->next…

python 词向量的代码解读 self.word_embeds = nn.Embedding(vocab_size, embedding_dim) 解释下

在PyTorch中,nn.Embedding 是一个用于将稀疏的离散数据表示为密集的嵌入向量的模块。这在自然语言处理(NLP)任务中非常常见,例如在处理单词或字符时,我们通常需要将这些离散的标识符转换为可以被神经网络处理的连续值向…

OpenAI 12Days 第一天:ChatGPT Pro、o1、o1-preview 和 o1 pro mode

OpenAI 12Days 第一天:ChatGPT Pro、o1、o1-preview 和 o1 pro mode ChatGPT Pro用户将享受无限制使用 o1、o1-mini、GPT-4o 和高级语音功能(Advanced Voice),并体验全新的 “o1 Pro 模式”。这一模式通过强大的算力提升&#xf…