Python爬虫--伪装成浏览器

把爬虫伪装成浏览器

1. 技术原理

我们不讲很官方的属于,

简单的讲就是,一些论坛啊,博客啊

为防止别人爬他们的文章,

通常会判断是不是浏览器访问,如果不是那就屏蔽。


2. 实战

由于 urlopen() 对于一些HTTP的高级功能不支持,

所以,我们如果要修改报头,也就是添加 header

可以使用 urllib.request.build_opener() 进行,

当然,也可以使用 urllib.request.Request() 下的 add_header() 实现浏览器的模拟。

build_opener 的作用:

要爬取的各种各样的网页,它们有一部填写需要验证码,有的需要 cookie,还有更多许多高级的功能,

它们会阻碍你爬,而我对于openurl单纯地理解就是打开网页,

它可以是一个字符串或者是一个 request 对象。而 build_opener 就是多了 handler ,处理问题更专业,更个性化。

代码:

复制代码
import urllib.request

url = "http://blog.csdn.net"

headers = (

	"User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36"

	)

opener = urllib.request.build_opener()

opener.addheaders = [headers]  # 添加 headers 头

data = opener.open(url).read()

print(data)

urllib 有些方面还是没 request 好。

相关推荐
狗凯之家源码网几秒前
PHP 用户反馈系统源码深度评测与实战指南
开发语言·php·用户反馈系统
古城小栈27 分钟前
Pydantic 从入门到实践全讲解
python
happylifetree29 分钟前
Python18:核心语法-数据存储与运算-运算符-算术运算符
python
打工仔折腾 AI33 分钟前
从Attention到BERT:双向预训练语言模型到底解决了什么问题
人工智能·后端·python·深度学习·语言模型·bert
谢亮_vipxieliang36 分钟前
Stream API 不是银弹:常见坑与性能建议
java·开发语言
迅猛龙办公室1 小时前
实现第一个python程序(HelloWorld)
开发语言·python
phltxy1 小时前
C 语言动态内存管理:从申请空间到安全释放
c语言·开发语言·ui
可乐鸡翅yeah_1 小时前
M3U8 防盗链 URL‑Token 签名,新手开发实操避坑
开发语言·javascript·ios·音视频·safari
2603_965896621 小时前
JS原型与原型链|对象继承与实例底层原理
开发语言·javascript·原型模式
拉格朗日(Lagrange)1 小时前
【第2 章】WorkBuddy 从入门到高手
开发语言·python