爬虫的伪装,数据乱码的解决

简介: # 引言今天给大家带来第二篇爬虫的文章,主要给大家从爬虫的伪装,数据乱码和视频的爬取三个方面来学习python爬虫# 爬虫的伪装这里分别从### **浏览器伪装****访问地址伪装****3.ip地址伪装****4.控制访问速率****5.伪装用户cookie****6.被拒绝连接的处理**六个方面来讲解爬虫的伪装## **浏览器伪装**默认的爬虫是形如Python-[urllib](https://so.csdn.net/so/search?q=urllib&spm=1001.2101.3001.7020)/2.1的形式的,很多网站可能会在校验

引言

今天给大家带来第二篇爬虫的文章,主要给大家从爬虫的伪装,数据乱码和视频的爬取三个方面来学习python爬虫

爬虫的伪装

这里分别从###

浏览器伪装

访问地址伪装

3.ip地址伪装

4.控制访问速率

5.伪装用户cookie

6.被拒绝连接的处理

六个方面来讲解爬虫的伪装

浏览器伪装

默认的爬虫是形如Python-urllib/2.1的形式的,很多网站可能会在校验上发现我们,然后拒绝我们的请求。

所以我们可以通过浏览器的伪装来替换默认的

我们这里在浏览器中打开开发者工具,找到User-Agent这一栏

将其全部复制下来,然后我们初始化一个字典的对象,然后封装我们的User-Agent,完成伪装

(PS:我们python字典中存储的是键值对,直接将User-Agent那一栏粘贴进去,会报错,因为这是我们未定义的对象,但是其实只是字符串,所以我们要用引号分别囊括两部分,即:键和值。)

接下来我们在请求函数中使用这个字典

result = requests.get(url=url,hearders=headers).text

完成第一部分的伪装

访问地址伪装

访问地址指的是headers头部中的reffer信息,我们可以加入“reffer”信息伪装访问地址,将其封装到字典里并使用,完成封装

3.ip地址伪装

反爬虫检测到某个IP的访问次数很多,或者是访问的频率很快,就会封禁这个IP。当我们被封了之后,可以使用代理IP来解决。

4.控制访问速率

这里我们可以控制访问速率,正常人类访问一个网站一般速度上不会太奇怪,所以我们使用爬虫请求的时候,可以控制访问速率,通过延时,来避免被发现

5.伪装用户cookie

很多需要登录的网站,在登陆后会获得一个cookie,所以对于没有cookie的请求服务器往往会拒绝过滤掉我们的请求

6.被拒绝连接的处理

有的服务器会以诡异的请求去拒绝我们的请求,或者是通过一些奇怪的降低用户体验的机制来防止我们爬取他的信息,常见于一些小网站

我们可以通过递归调用自身,检测到异常就递归,反之继续请求其他的信息

数据乱码

有时候我们爬取到的信息可能会出现中文乱码

怎么理解中文乱码?

相当于一个说日语的人说了一句:“八嘎呀陆”,而接收者采用了中文来理解,就是一段不知道什么意思的“乱码”。

针对这个问题,在语言上我们可以采用录制原始音频(不管怎么解读,原始的音频,波动都是一样的)再通过日语来解读

程序也是同理

我们接收到requests的请求后,不直接获取text,而是获取二进制数据,然后再以某一编码去解读。

example:

import requests

url = "https://baike.baidu.com/item/%E7%9C%BC%E9%95%9C%E7%8E%8B%E8%9B%87/538562"

result = requests.get(url=url).text

print(result)

结果:

image.png

乱码的

解决版本:

import requests

url = "https://baike.baidu.com/item/%E7%9C%BC%E9%95%9C%E7%8E%8B%E8%9B%87/538562"

result = requests.get(url=url).content

real = result.decode("UTF-8")

print(real)

image.png

结果如上,我们就完成了乱码问题的解决

相关文章
|
3月前
|
数据采集 API 数据处理
Objective-C 音频爬虫:实时接收数据的 didReceiveData: 方法
Objective-C 音频爬虫:实时接收数据的 didReceiveData: 方法
|
7天前
|
数据采集 Web App开发 监控
Python爬虫:爱奇艺榜单数据的实时监控
Python爬虫:爱奇艺榜单数据的实时监控
|
17天前
|
数据采集 安全 定位技术
使用代理IP爬虫时数据不完整的原因探讨
在信息化时代,互联网成为生活的重要部分。使用HTTP代理爬取数据时,可能会遇到失败情况,如代理IP失效、速度慢、目标网站策略、请求频率过高、地理位置不当、网络连接问题、代理配置错误和目标网站内容变化等。解决方法包括更换代理IP、调整请求频率、检查配置及目标网站变化。
52 11
|
2月前
|
数据采集 JSON JavaScript
如何通过PHP爬虫模拟表单提交,抓取隐藏数据
本文介绍了如何使用PHP模拟表单提交并结合代理IP技术抓取京东商品的实时名称和价格,特别是在电商大促期间的数据采集需求。通过cURL发送POST请求,设置User-Agent和Cookie,使用代理IP绕过限制,解析返回数据,展示了完整代码示例。
如何通过PHP爬虫模拟表单提交,抓取隐藏数据
|
2月前
|
数据采集 JavaScript 程序员
探索CSDN博客数据:使用Python爬虫技术
本文介绍了如何利用Python的requests和pyquery库爬取CSDN博客数据,包括环境准备、代码解析及注意事项,适合初学者学习。
89 0
|
4月前
|
数据采集 存储 监控
网络爬虫的最佳实践:结合 set_time_limit() 与 setTrafficLimit() 抓取云盘数据
本文探讨了如何利用 PHP 的 `set_time_limit()` 与爬虫工具的 `setTrafficLimit()` 方法,结合多线程和代理 IP 技术,高效稳定地抓取百度云盘的公开资源。通过设置脚本执行时间和流量限制,使用多线程提高抓取效率,并通过代理 IP 防止 IP 封禁,确保长时间稳定运行。文章还提供了示例代码,展示了如何具体实现这一过程,并加入了数据分类统计功能以监控抓取效果。
76 16
网络爬虫的最佳实践:结合 set_time_limit() 与 setTrafficLimit() 抓取云盘数据
|
3月前
|
消息中间件 数据采集 数据库
小说爬虫-03 爬取章节的详细内容并保存 将章节URL推送至RabbitMQ Scrapy消费MQ 对数据进行爬取后写入SQLite
小说爬虫-03 爬取章节的详细内容并保存 将章节URL推送至RabbitMQ Scrapy消费MQ 对数据进行爬取后写入SQLite
40 1
|
3月前
|
数据采集 数据挖掘 数据处理
Python中实现简单爬虫并处理数据
【9月更文挑战第31天】本文将引导读者理解如何通过Python创建一个简单的网络爬虫,并展示如何处理爬取的数据。我们将讨论爬虫的基本原理、使用requests和BeautifulSoup库进行网页抓取的方法,以及如何使用pandas对数据进行清洗和分析。文章旨在为初学者提供一个易于理解的实践指南,帮助他们快速掌握网络数据抓取的基本技能。
67 3
|
4月前
|
数据采集 Python
天天基金数据的Python爬虫
天天基金数据的Python爬虫
80 3
|
4月前
|
数据采集 存储 JavaScript
构建您的第一个Python网络爬虫:抓取、解析与存储数据
【9月更文挑战第24天】在数字时代,数据是新的金矿。本文将引导您使用Python编写一个简单的网络爬虫,从互联网上自动抓取信息。我们将介绍如何使用requests库获取网页内容,BeautifulSoup进行HTML解析,以及如何将数据存储到文件或数据库中。无论您是数据分析师、研究人员还是对编程感兴趣的新手,这篇文章都将为您提供一个实用的入门指南。拿起键盘,让我们开始挖掘互联网的宝藏吧!