Python 爬虫基础 - 浏览器伪装

简介:

前面学习了Urllib模块里面最最基本的GET和POST操作。现在做个简单的例子,比如我打算爬http://www.oschina.net/ 的页面
如果使用一样的方法

import urllib.request
url = "http://www.oschina.net/"
data = urllib.request.urlopen(url).read()

他会抛出以下异常

    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 403: Forbidden

这是因为这个网站做了一个反爬的设置,禁止非浏览器访问。绕过这个限制很容易,我们自己加工一个Header让服务器认为我们是通过浏览器访问的就好了。

按F12,选择network,刷新页面,然后看看Request Header里面的User-Agent

Python 爬虫基础 - 浏览器伪装

把这段内容拷贝下来,我们就可以自己编辑了。

Urllib里面有2个方法可以自己添加header。

<strong>Method 1:通过build_opener()实现</strong>

import urllib.request
url = "http://www.oschina.net/"

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

opener=urllib.request.build_opener()
opener.addheaders=[header]
data=opener.open(url).read()

fp=open('c:\\temp\\tt.html','wb')
fp.write(data)
fp.close()

<strong>Method 2: 通过 Request()实现</strong>

import urllib.request
url = "http://www.oschina.net/"
r=urllib.request.Request(url)
r.add_header("User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36")
data=urllib.request.urlopen(r).read()

fp=open('c:\\temp\\tt.html','wb')
fp.write(data)
fp.close()

两种方法都可以实现浏览器伪装。执行一下,就可以成功地爬取这个网站的页面了。






本文转自 beanxyz 51CTO博客,原文链接:http://blog.51cto.com/beanxyz/2043484,如需转载请自行联系原作者

目录
相关文章
|
12月前
|
数据采集 Web App开发 JavaScript
无头浏览器技术:Python爬虫如何精准模拟搜索点击
无头浏览器技术:Python爬虫如何精准模拟搜索点击
|
数据采集 Web App开发 iOS开发
Python 爬虫如何伪装 Referer?从随机生成到动态匹配
Python 爬虫如何伪装 Referer?从随机生成到动态匹配
|
数据采集 JavaScript 前端开发
Pyppeteer实战:基于Python的无头浏览器控制新选择
本文详细讲解了如何使用 Pyppeteer 结合爬虫代理高效采集小红书热点推荐信息。通过设置代理 IP、Cookie 和自定义 User-Agent,突破目标网站的反爬机制,实现标题、内容和评论的数据提取。文章结合代码示例与技术关系图谱,清晰展示从数据采集到分析的全流程,为复杂网站的数据获取提供参考。读者可在此基础上优化异常处理、并发抓取等功能,提升爬虫性能。
944 8
|
数据采集 Web App开发 监控
深度解析:使用ChromeDriver和webdriver_manager实现无头浏览器爬虫
在现代网络爬虫实践中,动态网页加载和反爬虫机制增加了数据采集的难度。采用无头浏览器技术(如Selenium与ChromeDriver)可有效模拟用户行为、执行JavaScript,获取动态内容。通过设置代理IP、伪装User-Agent和处理Cookies,提升爬虫隐蔽性和稳定性。该方案适用于电商价格监控、社交媒体数据采集和招聘信息抓取等场景,实现更高效的数据获取。
1133 2
深度解析:使用ChromeDriver和webdriver_manager实现无头浏览器爬虫
|
数据采集 Web App开发 JavaScript
爬虫策略规避:Python爬虫的浏览器自动化
爬虫策略规避:Python爬虫的浏览器自动化
|
Web App开发 SQL 数据库
使用 Python 解析火狐浏览器的 SQLite3 数据库
本文介绍如何使用 Python 解析火狐浏览器的 SQLite3 数据库,包括书签、历史记录和下载记录等。通过安装 Python 和 SQLite3,定位火狐数据库文件路径,编写 Python 脚本连接数据库并执行 SQL 查询,最终输出最近访问的网站历史记录。
482 4
|
Web App开发 XML JavaScript
Python 操作浏览器:让 Python 和 Web 世界合二为一
Python 操作浏览器:让 Python 和 Web 世界合二为一
669 3
|
Web App开发 存储 安全
Python编写脚本,打开浏览器输入网址,自动化登陆网站
Python编写脚本,打开浏览器输入网址,自动化登陆网站
1953 5
|
数据采集 缓存 JavaScript
​DrissionPage,Python浏览器自动化又一神器~
​DrissionPage,Python浏览器自动化又一神器~
871 1
|
数据采集 JavaScript 前端开发
Puppeteer-py:Python 中的无头浏览器自动化
Puppeteer-py:Python 中的无头浏览器自动化

推荐镜像

更多