python爬虫之requests库使用代理方式

article/2025/8/27 22:22:43

在看这篇文章之前,需要大家掌握的知识技能:

  • python基础
  • html基础
  • http状态码

让我们看看这篇文章中有哪些知识点:

  • get方法
  • post方法
  • header参数,模拟用户
  • data参数,提交数据
  • proxies参数,使用代理
  • 进阶学习

安装上requests库

1

pip install requests

先来看下帮助文档,看看requests的介绍,用python自带的help命令

1

2

import requests

help(requests)

output:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

Help on package requests:

NAME

    requests

DESCRIPTION

    Requests HTTP Library

    ~~~~~~~~~~~~~~~~~~~~~

     

    Requests is an HTTP library, written in Python, for human beings. Basic GET

    usage:

     

       >>> import requests

       >>> r = requests.get('https://www.python.org')

       >>> r.status_code

       200

       >>> 'Python is a programming language' in r.content

       True

     

    ... or POST:

     

       >>> payload = dict(key1='value1', key2='value2')

       >>> r = requests.post('https://httpbin.org/post', data=payload)

       >>> print(r.text)

       {

         ...

         "form": {

           "key2": "value2",

           "key1": "value1"

         },

         ...

       }

     

    The other HTTP methods are supported - see `requests.api`. Full documentation

    is at <http://python-requests.org>.

     

    :copyright: (c) 2017 by Kenneth Reitz.

    :license: Apache 2.0, see LICENSE for more details.

这里解释下,requests库是由python编写的对人类友好的http库,并且举例了GET与POST的方法。

GET方法

好的,那我们自己来测试下,就以请求百度为例吧,,,(谁让百度这么耐抗的)

1

2

3

4

import requests

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

print(r.status_code) #打印返回的http code

print(r.text) #打印返回结果的text

方便点,截了个图给大家看,返回的code是200,说明请求正常拉回网页了。

看下返回的text,有点不对头,少了一些html标签,最起码百度两个字得有吧。嗯,这是什么原因,,,

相信有些同学已经想到了,是没有真实模拟用户的请求,你去爬数据,还不模拟用户请求,那肯定限制你啊。这个时候需要加一个header参数来搞定,至少要加一个user-agent吧。好,那咋们去找一个ua吧。别百度了,自己动手,丰衣足食。教大家一个办法,用谷歌或者火狐的开发者工具。

谷歌浏览器的开发者工具

打开新标签 —— 按F12——访问下百度——找到NetWork——随便点开一个——往下翻——看到ua了吧,复制上。

1

2

3

4

5

import requests

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36'}

r = requests.get('https://www.baidu.com', headers=headers)

print(r.status_code)

print(r.text)

嗯~~~数据有点多,往下翻翻,这下就正常了嘛,数据都有了。。。PS:不信?可以自己输出一个html文件,浏览器打开看看呗

POST方法

只需要把get改成post就好了

1

2

3

4

5

import requests

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36'}

r = requests.post('https://www.baidu.com', headers=headers)

print(r.status_code)

print(r.text)

运行下试试看。一般post都是用来提交表单信息的,嗯,这里找一个能提交数据的url,去post下。

用我自己写的接口(PS:django写的,挺方便),大家复制过去就好了。注意看代码,data是要post的数据,post方法里加了一个data参数。

1

2

3

4

5

6

7

import requests

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36'}

# post的数据

data = {"info": "biu~~~ send post request"}

r = requests.post('http://dev.kdlapi.com/testproxy', headers=headers, data=data) #加一个data参数

print(r.status_code)

print(r.text)

截个图给大家看下,http code 200,body信息说的post成功,并且返回的了我自己的IP信息以及post的数据

使用代理

为什么用代理?一般网站都有屏蔽的限制策略,用自己的IP去爬,被封了那该网站就访问不了,这时候就得用代理IP来解决问题了。封吧,反正封的不是本机IP,封的代理IP。

既然使用代理,得先找一个代理IP。PS:自己写个代理服务器太麻烦了,关键是我也不会写啊,,,哈哈哈

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

import requests

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36'}

# post的数据

data = {"info": "biu~~~ send post request"}

# 代理信息,由快代理赞助

proxy = '115.203.28.25:16584'

proxies = {

    "http": "http://%(proxy)s/" % {'proxy': proxy},

    "https": "http://%(proxy)s/" % {'proxy': proxy}

}

r = requests.post('http://dev.kdlapi.com/testproxy', headers=headers, data=data, proxies=proxies) #加一个proxies参数

print(r.status_code)

print(r.text)

主要方法里加个proxies参数,这就用上代理IP了。


http://chatgpt.dhexx.cn/article/FIt5L6Ug.shtml

相关文章

爬虫代理IP哪家好?

前言 随着大数据时代的到来,爬虫已经成了获取数据的必不可少的方式,做过爬虫的想必都深有体会,爬取的时候莫名其妙 IP 就被网站封掉了,毕竟各大网站也不想自己的数据被轻易地爬走。 对于爬虫来说,为了解决封禁 IP 的问题,一个有效的方式就是使用代理,使用代理之后可以让…

Python爬虫基础-使用代理

为什么需要代理&#xff1f; 我们爬取数据的时候&#xff0c;开始可以正常爬取&#xff0c;但是过了一段时间&#xff0c;网站可能就会提示“您的IP访问频率过高”&#xff0c;然后就无法正常访问网站。 这是因为网站采取了反爬策略&#xff0c;某个ip访问频率超过一个阈值后&…

Python爬取代理IP

在一些网页的内容爬取过程中&#xff0c;有时候在单位时间内如果我们发送的请求次数过多&#xff0c;网站就可能会封掉我们的IP地址&#xff0c;这时候为了保证我们的爬虫的正常运行&#xff0c;我们就要使用代理IP。 下面来介绍如何构建自己的IP池。 我们用快代理来获取代理i…

流量数据分析的方法学习

1、看数字和趋势&#xff08;以电商网站为例&#xff09; 2、维度分解 3、用户分群&#xff08;又叫用户画像&#xff09; 4、转化漏斗 5、行为轨迹 关注行为轨迹&#xff0c;是为了真实了解用户行为。通过大数据手段&#xff0c;还原用户的行为轨迹&#xff0c;有助于增长团队…

恶意流量分析(一)

在分析恶意样本时&#xff0c;样本可能包含网络行为&#xff0c;比如样本从C2服务器上请求下载后续病毒文件。所以对于在病毒分析的角度&#xff0c;对恶意流量的分析也是不可避免的。在这里通过恶意流量习题&#xff08;malware-traffic-analysis&#xff09;对恶意流量进行入…

APP流量分析

分析参数 发送流量、接收流量 流量统计方法 抓包&#xff1a;干扰因素多&#xff0c;其他APP、安卓自带TCP收发长度统计功能 #找到包名 adb shell pm list packsges -3 #找到UID adb shell ps | grep <包名> #找到目录 adb shell cat /proc/9045<uid>/status #…

如何进行网站流量分析(一)

如何进行网站流量分析&#xff08;一&#xff09; 流量分析整体来说是一个内涵非常丰富的体系&#xff0c;整体过程是一个金字塔结构&#xff1a; 金字塔的顶部是网站的目标&#xff1a;投资回报率&#xff08;ROI&#xff09;。 网站流量分析模型举例 1 网站流量质量分析&a…

流量与日志分析

文章目录 1.流量与日志分析1.1系统日志分析1.1.1window系统日志与分析方法1.1.2linux 系统日志与分析方法 1.2 web日志分析iis 日志分析方法apache日志分析**access_log****error_log** nginx日志分析tomcat 日志分析主流日志分析工具使用 1.流量与日志分析 日志&#xff0c;是…

攻防世界—流量分析1

题目&#xff1a;流量分析&#xff0c;你知道这堆流量做了什么事情吗&#xff0c;你能恢复出来flag吗&#xff1f; 拿到附件以后&#xff0c;解压出一个抓包文件&#xff0c;通过wireshark打开&#xff0c;发现大量HTTP报文。 随机查看一个HTTP访问的URL&#xff0c;经过URL解…

流量分析:如何分析数据的波动?

流量分析。 内容分为四部分&#xff1a; 背景&#xff1b; 渠道分析&#xff1b; 转化与价值分析&#xff1b; 流量波动逻辑性分析。 背景 建立产品指标体系和报表之后&#xff0c;分析师和业务方最重要的事情就是每天看各种数据&#xff0c;而这个看数据的过程就是流量分…

网站流量分析数据指标

如果如果把一个网站比作一家超市&#xff0c;运营网站就像打理超市的生意&#xff0c;那么目标就是让访客多停留、多购买、多办几张会员卡。为了达成这个目标&#xff0c;我们先要了解当前的情况&#xff0c;比如有多少人走进了超市、看了多少件产品、多少人办理了会员卡;类似地…

产品流量分析

年底要接的数据需求好多&#xff0c;博客好久没更新了。这次和大家分享一下最近对流量分析的一些理解。 流量是产品获得用户的第一步&#xff0c;没有流量就没有转化与营收。对于流量的分析在产品日常运营效果监控中有着非常重要意义。下面我们就流量的来源与流向分析中需要关…

基于流量的分析理解

文章目录 一、Wirshark1.1 数据过滤1.2 数据流跟踪1.3 数据提取 二、流量分析过程 一、Wirshark Wireshark是一个可以进行数据包的捕获和分析的软件。网卡在对接收到的数据包进行处理之前,会先对它们的目的地址进行检查,如果目的地址不为本机的话,就会丢弃这些数据,相反就会将…

流量分析基础篇

流量分析 1.流量分析是什么? 网络流量分析是指捕捉网络中流动的数据包,并通过查看包内部数据以及进行相关的协议、流量分析、统计等来发现网络运行过程中出现的问题。 CTF比赛中,通常比赛中会提供一个包含流量数据的 PCAP 文件,进行分析。 2.数据包分析 总体把握– 协…

流量告警分析思路

目录 01-流量告警分析中常见的问题 1.安全告警DDOS 2.误报问题始终无法很好的闭环 3.威胁信息验证受阻 4.宽泛的只是涉略面 02-分析前准备工作及注意事项 03安全威胁事件分析 WEB特征检测-SQL注入、XSS、后门访问 WEB特征检测-SQL注入 WEB特征检测-XSS攻击 WEB特征检测…

流量分析入门

前言 个人一直对CTF比赛中MISC中流量分析这一块感兴趣…但好像之前参加的培训没有涉及到。正好看到了一些相关书籍资料&#xff0c;自己向前辈们学习以后整理一些资料来总结一下&#xff08;本人是个很菜…还没入门的pwn手&#xff09; 互联网五层模型 在计算机网络这门课中…

如何进行网站流量分析(二)

如何进行网站流量分析&#xff08;二&#xff09; 流量分析常见分类 指标是网站分析的基础&#xff0c;用来记录和衡量访问者在网站自的各种行为。比如我们经常说的流量就是一个网站指标&#xff0c;它是用来衡量网站获得的访问量。在进行流量分析之前&#xff0c;我们先来了…

CTF--Misc--流量分析

为什么需要流量分析&#xff1f; 网络流量包流转于各个环节&#xff0c;我们可以通过捕捉网络中流动的数据包&#xff0c;然后查看流量包内部的数据以及相关协议&#xff0c;流量分析、统计等等。 通常是包含流量数据的PCAP文件进行分析。 流量分析需要掌握的基本知识&#x…

流量分析基础知识学习

流量分析基础知识学习 wireshark基础语法 常见套路 查看关键字 http contains "flag" //直接出追踪流 右键-》追踪流-》TCP分组字节流 文件-》导出选择分组字节流查看隐藏 binwalk查看 然后再用搜索 然后导出分组字节流做题方法 flag明文 直接搜索flag&#x…

MATLA图片清晰度调整

第一步&#xff1a;选择文件——导出设置——分辨率&#xff08;设置为600&#xff09;