前面学习了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 爬虫基础 - 浏览器伪装相关推荐

  1. python爬虫基础(一)~爬虫概念和架构

    目录 1. 爬虫 1.1 概念 1.2 分类 2. 爬虫架构 2.1 url管理器 2.2 网页(html)下载(download)器 2.2.1 urllib下载html源码 2.2.2 reque ...

  2. python爬虫——基础知识

    python爬虫--基础知识 一.网页基础知识 二.爬虫的思路 1.HTML文档(超文本) 三.ROBOTS协议 四.浏览器发送HTTP请求的过程 1.http请求过程 2.请求 五.SSL连接错误 ...

  3. python爬虫基础(二)

    文章目录 python爬虫 1.异步爬虫 异步爬虫之多进程and多线程(不建议使用) 异步爬虫之线程池and进程池(适当使用) 单线程+异步协程(推荐) 补充:回调函数 补充:yield 多任务异步协 ...

  4. Python爬虫基础库(RBX)的实践_田超凡

    转载请注明原作者:田超凡 20190410 CSDN博客:https://blog.csdn.net/qq_30056341# Python爬虫基础库RBX指的是:Requests Beautiful ...

  5. python爬虫基础-requests库

    python爬虫基础-requests库 python爬虫 1.什么是爬虫? 通过编写程序,模拟浏览器上网,然后让其去互联网上抓取数据的过程. 注意:浏览器抓取的数据对应的页面是一个完整的页面. 为什 ...

  6. python基础知识整理-python爬虫基础知识点整理

    首先爬虫是什么? 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本. 根据我的经验,要学习Python爬虫 ...

  7. Day2:python爬虫基础学习(大嘘)

    Day2:python爬虫基础学习(大嘘)) 教材&参考: 学习过程 Sublime配置教程 下载&安装 语言(设置中文) 设置字体/配色 配置Python环境 使用python官方编 ...

  8. Python爬虫基础-如何获取网页源代码

    Python爬虫基础-如何获取网页源代码 网络爬虫(Web Crawler),又称网页蜘蛛(Web Spider),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.爬虫程序根据一组特定的规则 ...

  9. python爬虫基础知识点整理

    更多编程教程请到:菜鸟教程 https://www.piaodoo.com/ 友情链接: 高州阳光论坛https://www.hnthzk.com/ 人人影视http://www.sfkyty.com ...

最新文章

  1. 《赛博朋克2077》是捏脸游戏?上科大学生社团开发了一款赛博“滤镜”
  2. 苹果运行内存比较_决定手机流畅度到底是看CPU还是运行内存,你知道么?
  3. hdu 5358(尺取法)
  4. HDU4394(数论中的广搜)
  5. 团体程序设计天梯赛-练习集L1-025 正整数A+B (15分)(getline输入)
  6. java 正则表达式 组合_java基础:5.1 面向对象、类的关联 聚合 组合、正则表达式...
  7. 我国企业对开源社区的贡献度_开源社区对我意味着什么
  8. Linux创建进程必须fork么,Linux - fork() 创建进程
  9. python代码编写_高质量Python代码编写的5个优化技巧
  10. linux设置r镜像,一劳永逸,R的个性化默认配置
  11. copy和strong的区别
  12. java 音频波形图_java读取wav文件(波形文件)并绘制波形图的方法
  13. php自我介绍50字,简短自我介绍50字
  14. 涉密计算机杀毒记录表,保密工作自检自查记录表
  15. 关于苹果AR/VR专利新闻的一次超详细探索!
  16. 天盾linux数据恢复,天盾Mac数据恢复软件
  17. Linux中chown和chmod的用法
  18. 简单易懂且有趣的pycharm运行小游戏
  19. 在英特尔硬件上部署深度学习模型的无代码方法 关于OpenVINO深度学习工作台的三部分系列 第二部
  20. 外呼系统是怎么解决电销封卡封号的?

热门文章

  1. mysql与python的交互
  2. Java JDK与JRE
  3. [深入学习Redis]RedisAPI的原子性分析
  4. [LintCode] Reverse Pairs 翻转对
  5. [LeetCode]Remove Nth Node From End of List
  6. 静态块、自由块及构造函数的执行顺序
  7. Netscape Navigator 9 Beta 1 颁布
  8. Springboot缓存实战笔记之概念篇
  9. 深入理解Java main方法
  10. mysql几种安装方法_mysql的三种安装方式(详细)