用urllib2抓取被限制的网站页面

    1. # coding:utf-8
    2.  
    3. import urllib2
    4.  
    5. url = "http://blog.csdn.net/troubleshooter"
    6.  
    7. html = urllib2.urlopen(url)
    8.  
    9. print html.read()

      返回403错误

  1. 模拟用户访问
    1. # coding:utf-8
    2.  
    3. import urllib2
    4.  
    5. url = "http://blog.csdn.net/troubleshooter"
    6.  
    7. url_headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36',
    8. 'Referer':'http://www.cnblogs.com/evilxr/p/4038902.html',
    9. 'Host':'blog.csdn.net',
    10. 'GET':url
    11. }
    12.  
    13. req = urllib2.Request(url, headers=url_headers)
    14. html = urllib2.urlopen(req)
    15. print html.getcode()
    1. 200
    2. [Finished in 0.4s]

      

  2. 获取Cookie信息

    1. import urllib2
    2. import cookielib
    3.  
    4. cookie = cookielib.CookieJar()
    5. opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
    6. response = opener.open('http://www.baidu.com')
    7. In [12]: for i in cookie:
    8. print i.name,i.value
    9. ....:
    10. BAIDUID 4722B044786BAE8B1E484C0535706271:FG=1
    11. BIDUPSID 4722B044786BAE8B1E484C0535706271
    12. H_PS_PSSID 10299_16540_1430_16474_12824_10812_12868_14669_16520_16326_16662_16424_16514_15050_12386_13932
    13. PSTM 1438398244
    14. BDSVRTM 0
    15. BD_HOME 0
  3. 打开调试功能

    1. import urllib2
    2.  
    3. httpHandler = urllib2.HTTPHandler(debuglevel=1)
    4. httpsHandler = urllib2.HTTPSHandler(debuglevel=1)
    5. opener = urllib2.build_opener(httpHandler, httpsHandler)
    6.  
    7. urllib2.install_opener(opener)
    8. response = urllib2.urlopen('http://www.baidu.com')
    9. response = urllib2.urlopen('http://www.baidu.com')
    10. send: 'GET / HTTP/1.1\r\nAccept-Encoding: identity\r\nHost: www.baidu.com\r\nConnection: close\r\nUser-Agent: Python-urllib/2.7\r\n\r\n'
    11. reply: 'HTTP/1.1 200 OK\r\n'
    12. header: Date: Sat, 01 Aug 2014 03:14:07 GMT
    13. header: Content-Type: text/html; charset=utf-8
    14. header: Transfer-Encoding: chunked
    15. header: Connection: Close
    16. header: Vary: Accept-Encoding
    17. header: Set-Cookie: BAIDUID=0E3FD673DED07D3DBB4D6048AB469A32:FG=1; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com
    18. header: Set-Cookie: BIDUPSID=0E3FD673DED07D3DBB4D6048AB469A32; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com
    19. header: Set-Cookie: PSTM=1438398847; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com
    20. header: Set-Cookie: BDSVRTM=0; path=/
    21. header: Set-Cookie: BD_HOME=0; path=/
    22. header: Set-Cookie: H_PS_PSSID=13289_1441_10813_14432_12867_14667_16521_14951_16663_16427_16514_15291_12315_13932_10634; path=/; domain=.baidu.com
    23. header: P3P: CP=" OTI DSP COR IVA OUR IND COM "
    24. header: Cache-Control: private
    25. header: Cxy_all: baidu+d4d7821ea11368a1cad938a4de84b7ab
    26. header: Expires: Sat, 01 Aug 2015 03:13:12 GMT
    27. header: X-Powered-By: HPHP
    28. header: Server: BWS/1.1
    29. header: X-UA-Compatible: IE=Edge,chrome=1
    30. header: BDPAGETYPE: 1
    31. header: BDQID: 0x8824b3dc0001bdbb
    32. header: BDUSERID: 0

Python 爬虫学习 urllib2的更多相关文章

  1. python爬虫学习(1) —— 从urllib说起

    0. 前言 如果你从来没有接触过爬虫,刚开始的时候可能会有些许吃力 因为我不会从头到尾把所有知识点都说一遍,很多文章主要是记录我自己写的一些爬虫 所以建议先学习一下cuiqingcai大神的 Pyth ...

  2. Python爬虫学习:三、爬虫的基本操作流程

    本文是博主原创随笔,转载时请注明出处Maple2cat|Python爬虫学习:三.爬虫的基本操作与流程 一般我们使用Python爬虫都是希望实现一套完整的功能,如下: 1.爬虫目标数据.信息: 2.将 ...

  3. Python爬虫学习:二、爬虫的初步尝试

    我使用的编辑器是IDLE,版本为Python2.7.11,Windows平台. 本文是博主原创随笔,转载时请注明出处Maple2cat|Python爬虫学习:二.爬虫的初步尝试 1.尝试抓取指定网页 ...

  4. python爬虫学习 —— 总目录

    开篇 作为一个C党,接触python之后学习了爬虫. 和AC算法题的快感类似,从网络上爬取各种数据也很有意思. 准备写一系列文章,整理一下学习历程,也给后来者提供一点便利. 我是目录 听说你叫爬虫 - ...

  5. Python爬虫学习:四、headers和data的获取

    之前在学习爬虫时,偶尔会遇到一些问题是有些网站需要登录后才能爬取内容,有的网站会识别是否是由浏览器发出的请求. 一.headers的获取 就以博客园的首页为例:http://www.cnblogs.c ...

  6. 《Python爬虫学习系列教程》学习笔记

    http://cuiqingcai.com/1052.html 大家好哈,我呢最近在学习Python爬虫,感觉非常有意思,真的让生活可以方便很多.学习过程中我把一些学习的笔记总结下来,还记录了一些自己 ...

  7. python爬虫学习视频资料免费送,用起来非常666

    当我们浏览网页的时候,经常会看到像下面这些好看的图片,你是否想把这些图片保存下载下来. 我们最常规的做法就是通过鼠标右键,选择另存为.但有些图片点击鼠标右键的时候并没有另存为选项,或者你可以通过截图工 ...

  8. python爬虫学习笔记(一)——环境配置(windows系统)

    在进行python爬虫学习前,需要进行如下准备工作: python3+pip官方配置 1.Anaconda(推荐,包括python和相关库)   [推荐地址:清华镜像] https://mirrors ...

  9. [转]《Python爬虫学习系列教程》

    <Python爬虫学习系列教程>学习笔记 http://cuiqingcai.com/1052.html 大家好哈,我呢最近在学习Python爬虫,感觉非常有意思,真的让生活可以方便很多. ...

随机推荐

  1. php的rss订阅

    一般来说我们很少自己造轮子,读取rss还是用git上的开源库吧 https://github.com/dg/rss-php 这个开源库不能读取博客园的rss订阅,新浪微博的格式显示有问题. 博客园的订 ...

  2. Win7精简成功后的总结

    vsax 发表于 2014-7-20 20:59:43  https://www.itsk.com/forum.php?mod=viewthread&tid=333816&highli ...

  3. #pragma once与 #ifndef的区别

      为了避免同一个文件被include多次 1   #ifndef方式2   #pragma once方式 在能够支持这两种方式的编译器上,二者并没有太大的区别,但是两者仍然还是有一些细微的区别.   ...

  4. Myeclipse2016 部署webapp 至 tomcat 上出现 “There are no resources that can be added or removed from the server”

    对要部署的项目右键---Properties---Myeclipse---选中Dynamic Web Module 和 Java

  5. 解决本机安装多版本jdk导致The type java.lang.Object cannot be resolved It is indirectly referenced ...

    本机开始安装了jdk1.6,然后安装了jdk1.8 当在调自动化的时候,发现传入函数传参String类型,报错The type java.lang.Object cannot be resolved ...

  6. CSS Hack大全-教你如何区分出IE6-IE10、FireFox、Chrome、Opera

    CSS Hack大全-教你如何区分出IE6-IE10.FireFox.Chrome.Opera 转载自:http://www.jb51.net/article/50116.htm 现在的浏览器IE6- ...

  7. js——单选框radio

    页面: ... <tr align="right"> <td align="right">会员性别:</td> <td ...

  8. iOS开发UI篇—使用UItableview完成一个简单的QQ好友列表(二)

    一.实现效果             二.实现代码 1.数据模型部分 YYQQGroupModel.h文件 // // YYQQGroupModel.h // 02-QQ好友列表(基本数据的加载) / ...

  9. mybaits入门

    1.回顾jdbc开发 orm概述 orm是一种解决持久层对象关系映射的规则,而不是一种具体技术.jdbc/dbutils/springdao,hibernate/springorm,mybaits同属 ...

  10. C语言学习常识

    开发环境 学习C语言,在mac os x上,我们选用的开发工具是x-code:而在Windows上,我们一般用微软提供的vc6.0:此外还有很多编辑器内置了或者支持下载C语言的编译器插件.所以,我们可 ...