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
把这段内容拷贝下来,我们就可以自己编辑了。
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()
两种方法都可以实现浏览器伪装。执行一下,就可以成功地爬取这个网站的页面了。
Python 爬虫基础 - 浏览器伪装相关推荐
- python爬虫基础(一)~爬虫概念和架构
目录 1. 爬虫 1.1 概念 1.2 分类 2. 爬虫架构 2.1 url管理器 2.2 网页(html)下载(download)器 2.2.1 urllib下载html源码 2.2.2 reque ...
- python爬虫——基础知识
python爬虫--基础知识 一.网页基础知识 二.爬虫的思路 1.HTML文档(超文本) 三.ROBOTS协议 四.浏览器发送HTTP请求的过程 1.http请求过程 2.请求 五.SSL连接错误 ...
- python爬虫基础(二)
文章目录 python爬虫 1.异步爬虫 异步爬虫之多进程and多线程(不建议使用) 异步爬虫之线程池and进程池(适当使用) 单线程+异步协程(推荐) 补充:回调函数 补充:yield 多任务异步协 ...
- Python爬虫基础库(RBX)的实践_田超凡
转载请注明原作者:田超凡 20190410 CSDN博客:https://blog.csdn.net/qq_30056341# Python爬虫基础库RBX指的是:Requests Beautiful ...
- python爬虫基础-requests库
python爬虫基础-requests库 python爬虫 1.什么是爬虫? 通过编写程序,模拟浏览器上网,然后让其去互联网上抓取数据的过程. 注意:浏览器抓取的数据对应的页面是一个完整的页面. 为什 ...
- python基础知识整理-python爬虫基础知识点整理
首先爬虫是什么? 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本. 根据我的经验,要学习Python爬虫 ...
- Day2:python爬虫基础学习(大嘘)
Day2:python爬虫基础学习(大嘘)) 教材&参考: 学习过程 Sublime配置教程 下载&安装 语言(设置中文) 设置字体/配色 配置Python环境 使用python官方编 ...
- Python爬虫基础-如何获取网页源代码
Python爬虫基础-如何获取网页源代码 网络爬虫(Web Crawler),又称网页蜘蛛(Web Spider),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.爬虫程序根据一组特定的规则 ...
- python爬虫基础知识点整理
更多编程教程请到:菜鸟教程 https://www.piaodoo.com/ 友情链接: 高州阳光论坛https://www.hnthzk.com/ 人人影视http://www.sfkyty.com ...
最新文章
- 《赛博朋克2077》是捏脸游戏?上科大学生社团开发了一款赛博“滤镜”
- 苹果运行内存比较_决定手机流畅度到底是看CPU还是运行内存,你知道么?
- hdu 5358(尺取法)
- HDU4394(数论中的广搜)
- 团体程序设计天梯赛-练习集L1-025 正整数A+B (15分)(getline输入)
- java 正则表达式 组合_java基础:5.1 面向对象、类的关联 聚合 组合、正则表达式...
- 我国企业对开源社区的贡献度_开源社区对我意味着什么
- Linux创建进程必须fork么,Linux - fork() 创建进程
- python代码编写_高质量Python代码编写的5个优化技巧
- linux设置r镜像,一劳永逸,R的个性化默认配置
- copy和strong的区别
- java 音频波形图_java读取wav文件(波形文件)并绘制波形图的方法
- php自我介绍50字,简短自我介绍50字
- 涉密计算机杀毒记录表,保密工作自检自查记录表
- 关于苹果AR/VR专利新闻的一次超详细探索!
- 天盾linux数据恢复,天盾Mac数据恢复软件
- Linux中chown和chmod的用法
- 简单易懂且有趣的pycharm运行小游戏
- 在英特尔硬件上部署深度学习模型的无代码方法 关于OpenVINO深度学习工作台的三部分系列 第二部
- 外呼系统是怎么解决电销封卡封号的?