一、浏览器模拟——Header属性

有的时候,我们无法爬取一些网页,也就是说会出现403错误,这是因为这些网页为了防止有人恶意去采集其信息所以进行了一些反爬虫的设置。

为了可以获取这些数据我们使用一些两种方法:

1、使用 build opener()

由于urlopen()不支持HTTP的高级运用所以我们要修改头报。可以使用urllib.request.build_opener进行如下面例子:

#!/uer/bin/env python
#-*-coding: utf-8 -*-
import urllib.request  ###导入import urllib.request模块

ur1="http://www.cnblogs.com/alsely/archive/2017/04/19.html"
headers=("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36")###头报
file=urllib.request.build_opener()
file.addheaders=[headers]
data=file.open(ur1).read()

print(data)
fd=open("D:/python爬虫文件目录/kood","wb")fd.write(data)fd.close()


这样就可以获取:

方法二、使用add_header()添加头报 在这我做简单的介绍:
1 #!/uer/bin/env python
2 #-*-coding: utf-8 -*-
3 import urllib.request  ###导入import urllib.request模块
4
5 rep=urllib.request.Request("http://www.cnblogs.com/alsely/archive/2017/04/19.html")
6 rep.add_header("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36")
7 data=urllib.request.urlopen(rep).read()
8 print(data)

同样也可运行。下面让我们看看具体步骤:1、首先设置爬取的网址,然后使用rllib.request.Request()创建一个Request()对象并且进行赋值给rep。2、随后我们就用add_header()方法添加报头信息。3、我们使用urlopen()打开Request对象即可以打开相应网址,但是在这我们在其后面添加一个read()这样就是打开并读取。

 

转载于:https://www.cnblogs.com/alsely/p/6759723.html

我的Python之路:浏览器模拟相关推荐

  1. python 模拟浏览器下载文件-python爬虫:使用Selenium模拟浏览器行为

    前几天有位微信读者问我一个爬虫的问题,就是在爬去百度贴吧首页的热门动态下面的图片的时候,爬取的图片总是爬取不完整,比首页看到的少.原因他也大概分析了下,就是后面的图片是动态加载的.他的问题就是这部分动 ...

  2. pythonrequests发送数据_在python中使用requests 模拟浏览器发送请求数据的方法

    在python中使用requests 模拟浏览器发送请求数据的方法 如下所示: import requests url='http://####' proxy={'http':'http://#### ...

  3. python 模拟浏览器selenium_浅谈python爬虫使用Selenium模拟浏览器行为

    前几天有位微信读者问我一个爬虫的问题,就是在爬去百度贴吧首页的热门动态下面的图片的时候,爬取的图片总是爬取不完整,比首页看到的少.原因他也大概分析了下,就是后面的图片是动态加载的.他的问题就是这部分动 ...

  4. Python 爬虫 之 Selenium 模拟打开操作浏览器爬取斗鱼全部视播相关信息,并json保存信息

    Python 爬虫 之 Selenium 模拟打开操作浏览器爬取斗鱼全部视播相关信息,并json保存信息 基础: Python 爬虫 之 Selenium.webdriver 的安装,以及模拟打开操作 ...

  5. 零基础:Python之Selenium操作浏览器模拟登陆QQ邮箱

    零基础:Python之Selenium操作浏览器模拟登陆QQ邮箱 一. Selenium简介 二. 环境配置 2.1 Python运行环境搭建 2.2 Selenium相关安装与配置 2.2.1 Se ...

  6. python之路——模块和包

    一.模块 1.什么是模块? 常见的场景:一个模块就是一个包含了Python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1.使用Python编 ...

  7. python之路day5_Python语言之python之路笔记day19

    本文主要向大家介绍了Python语言之python之路笔记day19,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. 一.Django请求生命周期 对于所有的web框架来说本质就是 ...

  8. Python之路【第十五篇】:Web框架

    Python之路[第十五篇]:Web框架 Web框架本质 众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. 1 2 3 4 5 6 7 ...

  9. Python之路 - 网络编程之Socket

    Python之路 - 网络编程之Socket C/S架构 ? Socket ? 基于TCP ? 基于UDP ? Socket对象方法 ? C/S架构 ? 在网络通信中 , 一般是一方求一方应 , 求的 ...

最新文章

  1. Github上传大于100M文件:LFS
  2. 08-GCD常用方法
  3. P1739表达式括号匹配
  4. 开发中常用的一些神器推荐
  5. GCC 生成的符号表调试信息剖析
  6. wordpress html页面缓存 cdn,WordPress 下老旧又高效的本地缓存插件 cos-html-cache
  7. Struts结合梅花雪实现动态生成树
  8. 解决为什么已经设置了request.setCharacterEncoding(“utf-8“);POST请求仍然乱码的问题
  9. linux块设备驱动简述(Linux驱动开发篇)
  10. 电子技术背后的数学本质【2】(反馈电路的分析和运算放大器)
  11. 1024 程序员节|用代码,改变世界
  12. 机器学习笔记之基础概念
  13. 题目 2322: 大鱼吃小鱼
  14. java mifare_java – 使用SCL010获取Mifare Ultralight的UID
  15. POJ Haybale Guessing
  16. 如何自己搭建一个个人网站?
  17. 美元指数与人民币汇率
  18. Linux环境下安装Xilinx ISE 14.6
  19. 凯撒密码 (20 分)
  20. zip打包,unzip解包

热门文章

  1. python save保存图片到本地_python爬取网站上的图片并保存到本地
  2. html的字母u代表什么意思,html元素 u 标签的使用方法及作用
  3. oracle数据库sql查询,oracle数据库中常用经典SQL查询
  4. c语言编译错误c267,为啥编译出现HAHA.C(31): error C267: 'adc0832': requires ANSI-style prototype.......
  5. Java韩顺平 | IO流专题 | 学习小记
  6. entry在java的用处_JAVA问题:Map.Entry的一般用处是什么?
  7. 【李宏毅机器学习】04:梯度下降Gradient Descent
  8. 如何基于链表实现 LRU 缓存淘汰算法?
  9. 【经验之谈】SAP中的普通屏幕使用定制控制
  10. 【七】zuul路由网关