【网络安全带你练爬虫-100练】第1练:发送请求获取返回内容

news/2024/7/7 19:00:31

目录

一、前置知识1

二、前置知识2

requests库的7个主要方法

语法:

注解:

三、扩展工具

四、网络安全小圈子


一、前置知识1

顾名思义网络爬虫第一步,爬取目标 URL的网页的信息

可以使用 urllib.request 和 requests发送请求,然后返回对应的数据(py3)

1、urllib 库是 Python 内置的

2、requests 库是第三方库(需额外安装,pip install requests)



二、前置知识2

requests库的7个主要方法

方法    说明
requests.request()    构造一个请求
requests.get()    获取HTML网页的主要方法(即HTTP的GET)
requests.head()    获取HTML网页头的信息方法(即HTTP的HEAD)
requests.post()    向HTML网页提交POST请求方法(即HTTP的POST)
requests.put()    向HTML网页提交PUT请求的方法(即HTTP的PUT)
requests.patch()    向HTML网页提交局部修改请求(即HTTP的PATCH)
requests.delete()    向HTML页面提交删除请求(即HTTP的DELETE)


语法:

requests.request(method,url,**kwargs)

注解:

1、method:请求方式(get/put/post等七种)

如resp = requests.request(‘GET’,url,**kwargs)


2、url:目标url

必选项(不可或缺)


3、**kwargs:控制访问参数(13个,为可选项)

params : 字典或字节序列,作为参数增加到url中
data : 字典、字节序列或文件对象,作为Request的内容
json : JSON格式的数据,作为Request的内容
headers : 字典,HTTP定制头(模拟浏览器进行访问)
cookies : 字典或CookieJar,Request中的cookie
files : 字典类型,传输文件
timeout : 设定超时时间,秒为单位
proxies : 字典类型,设定访问代理服务器,可以增加登录认证
allow_redirects : True/False,默认为True,重定向开关
stream : True/False,默认为True,获取内容立即下载开关
verify : True/False,默认为True,认证SSL证书开关
cert : 本地SSL证书路径
auth : 元组,支持HTTP认证功能

import requests

if __name__ == '__main__':
    url1="https://beautifulsoup.readthedocs.io/zh_CN/latest/"
    req=requests.get(url=url1)
    req.encoding='utf-8'
    print(req.text)

注:

导入requests模块。

如果该脚本被直接执行(而不是被引入为模块),则执行以下操作:

  • 将变量url1赋值为"Beautiful Soup 4.4.0 文档 — beautifulsoup 4.4.0q 文档"。
  • 使用requests.get()函数发送一个GET请求到url1指定的URL,并将返回的响应对象赋值给变量req
  • 设置req对象的编码为UTF-8。
  • 打印req.text,即获取到的响应文本内容。

获取到的返回包内容在最下方方框中

(使用pycharm工具)

 

 



三、扩展工具

jupyter notebook工具(平时可能都习惯使用pycharm)

安装

pip3 install jupyter

查看帮助信息

jupyter notebook -h

启动

jupyter notebook

(如果端口占用的情况:jupyter notebook --port <port_number>)

 进入到了主页面

(还有很多配置,可以使界面更清爽,我只想使用软件的功能,界面想配置清爽可以查看一下软件的其他配置)

软件的使用:

如图所示点击完成以后会新建一个窗口

在里面复制代码运行即可



四、网络安全小圈子

 


http://lihuaxi.xjx100.cn/news/1293870.html

相关文章

three.js 最小环境搭建

完整目录: 1、html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><st…

split()方法详解

split&#xff08;&#xff09;方法详解 1.split()主要是用于对一个字符串进行分割成多个字符串数组。标准形式为String [] strings str.split(“”); 2.split()方法中括号中的参数可以为一个也可以为多个&#xff0c;每个参数之间用|隔开。并且每个参数之间要紧挨着|。 如&am…

String、StringBuffer和StringBuilder的区别(面试题)

目录 一、介绍String、StringBuffer和StringBuilder三大类 1.String类 2.StringBuffer类 3.StringBuilder类 4.什么是字符串常量池 4.StringBuilder类为什么不需要同步进行同步操作 二、关于String、StringBuffer和StringBuilder常见的面试题 1.为什么String是不可变的…

MyBatis 中,如何实现插件开发?

MyBatis 中&#xff0c;如何实现插件开发&#xff1f; 在 MyBatis 中&#xff0c;可以通过实现拦截器接口 Interceptor 来编写自己的插件。 插件需要实现 Interceptor 接口&#xff0c;并定义拦截行为和拦截对象的类型。实现 Interceptor 接口需要实现三个方法&#xff1a;int…

<List<Map<String, Object>>> List Map 转 List<T>工具类

工具类&#xff1a; package com.itheima.util;import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; import java.util.Map;public class ListMapToBeanUtils {/*** List<Map<String, Object>>转List<T>*/public static &…

【数据挖掘】时间序列模型处理指南(一)

一、说明 序模型是一组按时间排序的数据点,用于预测未来。以下是您需要了解的所有信息。 无论我们希望预测金融市场趋势还是电力消耗,时间都是我们的模型中必须考虑的重要因素。例如,预测电力消耗高峰的时间会很有趣。这对于调整电价或电力生产可能很有用。 二、什么是时序…

C语言:移位操作注意事项

移位操作&#xff1a;因为操作符的原因&#xff0c;注意加括号。还有没必要在移位的时候进行&#xff08;uint32_t&#xff09;转换。 测试程序如下&#xff1a; #include <string.h> #include <stdlib.h> #include <stdio.h> #include <stdint.h>i…

TP6的服务在自定义composer包中如何使用

官方关于Service的说明文档&#xff1a; https://www.kancloud.cn/manual/thinkphp6_0/1037490 做下概念说明&#xff1a; Service和Provider在TP6中扮演着不同的角色。Service是用于封装特定功能的类&#xff0c;而Provider是用于注册和配置Service的类。 这里的Service指的…