【安全合规】python爬虫从0到1 -urllib_请求对象的定制(反爬策略)

简介: 浏览器渲染引擎,浏览器语言,浏览器插件等

请求对象的定制

下面我们来一起学习一下urllib中请求对象的定制。

1.UA介绍

UA(user agent)中文名为用户代理,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本,cpu类型,浏览器及版本,浏览器内核,浏览器渲染引擎,浏览器语言,浏览器插件等。


#关于如何在浏览器中找到UA。详见下图!image.png

2.urllib.request.Request

urlopen()方法可以实现最基本的请求的发起,但如果要加入Headers等信息,就可以利用Request类来构造请求。

语法如下:image.png注意:因为参数顺序的问题,不能直接写url,headers,中间还有data,若直接写入,则headers的值默认传给data,所以我们需要用到关键字传参!

下面我们来看实例(读取百度首页的网页源码):

import urllib.request
url = 'https://www.baidu.com'
# url的组成 eg:https://www.baidu.com/s?wd=易烊千玺
# 1.协议(http/https) 2.主机(www.baidu.com) 3.端口号(80/443) 4.路径(s) 5.参数(wd=易烊千玺) 6.锚点
#  常见的端口号
# http(80) https(443) mysql(3306) oracle(1521) redis(6379) mongodb(27017)
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36'
}
# 因为参数顺序的问题,不能直接写url,headers,中间还有data,若直接写入,则headers的值默认传给data,所以我们需要用到关键字传参!
request = urllib.request.Request(url = url,headers = headers)
response = urllib.request.urlopen(request)
content = response.read().decode('utf8')
print(content)   # 若不加入ua标识,则返回的数据只有一部分。因为存在反爬策略

运行结果:image.png


以上就是python爬虫中请求对象的定制,也就是常说的反爬策略! 关注我,下期我们更新一些关于编码解码的问题!!

相关文章
|
5天前
|
数据采集 存储 API
网络爬虫与数据采集:使用Python自动化获取网页数据
【4月更文挑战第12天】本文介绍了Python网络爬虫的基础知识,包括网络爬虫概念(请求网页、解析、存储数据和处理异常)和Python常用的爬虫库requests(发送HTTP请求)与BeautifulSoup(解析HTML)。通过基本流程示例展示了如何导入库、发送请求、解析网页、提取数据、存储数据及处理异常。还提到了Python爬虫的实际应用,如获取新闻数据和商品信息。
|
28天前
|
数据采集 Python
爬虫实战-Python爬取百度当天热搜内容
爬虫实战-Python爬取百度当天热搜内容
65 0
|
30天前
|
存储 开发框架 JSON
在 Python 中,如何处理 Web 请求和响应?
【2月更文挑战第26天】【2月更文挑战第90篇】在 Python 中,如何处理 Web 请求和响应?
|
15天前
|
数据采集 安全 Python
python并发编程:Python实现生产者消费者爬虫
python并发编程:Python实现生产者消费者爬虫
23 0
python并发编程:Python实现生产者消费者爬虫
|
27天前
|
数据采集 数据挖掘 调度
异步爬虫实践攻略:利用Python Aiohttp框架实现高效数据抓取
本文介绍了如何使用Python的Aiohttp框架构建异步爬虫,以提升数据抓取效率。异步爬虫利用异步IO和协程技术,在等待响应时执行其他任务,提高效率。Aiohttp是一个高效的异步HTTP客户端/服务器框架,适合构建此类爬虫。文中还展示了如何通过代理访问HTTPS网页的示例代码,并以爬取微信公众号文章为例,说明了实际应用中的步骤。
|
1天前
|
Python
python面型对象编程进阶(继承、多态、私有化、异常捕获、类属性和类方法)(上)
python面型对象编程进阶(继承、多态、私有化、异常捕获、类属性和类方法)(上)
7 0
|
2天前
|
Python
python学习12-类对象和实例对象
python学习12-类对象和实例对象
|
11天前
|
网络协议 安全 Python
python监听连接请求
【4月更文挑战第5天】本教程介绍了网络编程中服务器监听连接请求的关键步骤。首先,理解监听是服务器在特定端口等待客户端连接的基本概念。接着,设置监听涉及创建套接字、绑定地址和端口,以及开始监听。提供了一个Python示例,展示如何使用socket库实现监听。注意点包括异常处理、并发处理和安全性考虑。学习后,读者能掌握基础的监听连接请求代码编写。
|
23天前
|
数据采集 存储 Web App开发
一键实现数据采集和存储:Python爬虫、Pandas和Excel的应用技巧
一键实现数据采集和存储:Python爬虫、Pandas和Excel的应用技巧
|
23天前
|
Python
Python类与对象:深入解析与应用
本文介绍了Python中的核心概念——类和对象,以及它们在面向对象编程中的应用。类是用户定义的类型,描述具有相同属性和行为的对象集合;对象是类的实例,具备类的属性和方法。文章通过示例讲解了如何定义类、创建及使用对象,包括`__init__`方法、属性访问和方法调用。此外,还阐述了类的继承,允许子类继承父类的属性和方法并进行扩展。掌握这些概念有助于提升Python编程的效率和灵活性。