伪装自己

有些网站不会同意程序直接用上面的方式进行访问,如果识别有问题,那么站点根本不会响应,所以为了完全模拟浏览器的工作

  • 设置请求头
    其中User-Agent代表用的哪个请求的浏览器
from urllib.request import urlopen
from urllib.request import Requesturl = 'http://www.server.com/login'
user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
headers = { 'User-Agent' : user_agent }  request = Request(url, headers=headers)
response = urlopen(request)
page = response.read()

对付防盗链,服务器会识别headers中的referer是不是它自己,如果不是,有的服务器不会响应,所以我们还可以在headers中加入referer

headers = { 'User-Agent' : 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)','Referer':'http://www.zhihu.com/articles' }

在此可以使用多个User_Agent:然后随即选择

import urllib.request
import random
ua_list = ["Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0)","Mozilla/5.0 (Windows; U; Windows NT 5.2) Gecko/2008070208 Firefox/3.0.1","Mozilla/5.0 (Windows; U; Windows NT 5.2) AppleWebKit/525.13 (KHTML, like Gecko) Version/3.1","Mozilla/5.0 (Windows; U; Windows NT 5.2) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27","Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ;  QIHU 360EE)"
]
user_agent = random.choice(ua_list)
request = urllib.request.Request("http://www.baidu.com")
request.add_header("User-Agent",user_agent)
#区分大小写
print(request.get_header("User-agent"))

对于随机UserAgent,PYthon有提供一个模块库fake-useragent,安装如下:

pip3 install fake-useragent
  • 设置代理Proxy

假如一个网站它会检测某一段时间某个IP 的访问次数,如果访问次数过多,它会禁止你的访问。所以你可以设置一些代理服务器来帮助你做工作,每隔一段时间换一个代理,网站君都不知道是谁在捣鬼了,这酸爽!
免费代理ip(测试的时候可以使用)
分类:
透明代理:目标网站知道你使用了代理并且知道你的源IP地址,这种代理显然不符合我们这里使用代理的初衷

匿名代理:匿名程度比较低,也就是网站知道你使用了代理,但是并不知道你的源IP地址

高匿代理:这是最保险的方式,目标网站既不知道你使用的代理更不知道你的源IP

代码如下:

from urllib.request import Request
from urllib.request import build_opener
from urllib.request import ProxyHandlerurl = "http://www.baidu.com/"
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36"
}request = Request(url, headers=headers)
handler = ProxyHandler({"http": "221.226.194.21:9999"})
opener = build_opener(handler)
response = opener.open(request)print(response.read().decode())

使用DebugLog

可以通过下面的方法把 Debug Log 打开,这样收发包的内容就会在屏幕上打印出来,方便调试,这个也不太常用,仅提一下

from urllib.request import HTTPHandler
from urllib.request import build_opener
from urllib.request import Requesthandler = HTTPHandler(debuglevel=1)
opener = build_opener(handler)
url = "http://www.sohu.com"
request = Request(url)
response = opener.open(request)

Python爬虫之(四)urllib库的高级用法相关推荐

  1. Python爬虫入门四urllib库的高级用法

    1.设置headers 有些网站不会同意程序直接用上面的方式进行访问,如果识别有问题,那么站点根本不会响应,所以为了完全模拟浏览器的工作,我们需要设置一些 Headers 的属性. 首先,打开我们的浏 ...

  2. Python爬虫入门四之Urllib库的高级用法

    1.设置Headers 有些网站不会同意程序直接用上面的方式进行访问,如果识别有问题,那么站点根本不会响应,所以为了完全模拟浏览器的工作,我们需要设置一些Headers 的属性. 首先,打开我们的浏览 ...

  3. Python爬虫入门(4):Urllib库的高级用法

    Python爬虫入门(1):综述 Python爬虫入门(2):爬虫基础了解 Python爬虫入门(3):Urllib库的基本使用 Python爬虫入门(4):Urllib库的高级用法 Python爬虫 ...

  4. 【Python爬虫系列教程 5-100】 Requests高级用法:文件上传,如何设置SSL证书验证、处理超时设置 、身份认证和代理设置

    文章目录 高级用法 文件上传 Cookies Session维持 SSL证书验证 超时设置 身份认证 代理设置 Prepared Request 高级用法 上篇,我们了解了requests的基本用法, ...

  5. Python爬虫入门之Urllib库的基本使用

    那么接下来,小伙伴们就一起和我真正迈向我们的爬虫之路吧. 1.分分钟扒一个网页下来 怎样扒网页呢?其实就是根据URL来获取它的网页信息,虽然我们在浏览器中看到的是一幅幅优美的画面,但是其实是由浏览器解 ...

  6. Python爬虫入门三urllib库基本使用

    urllib是一个收集了多个涉及了URL的模块的包: URL获取网页 urllibtest.pyimport urllib2 response = urllib2.urlopen('http://ww ...

  7. Python 爬虫篇-利用urllib库下载网页中的图片实例演示

    我们用的是 urllib 库,这个库是 python 自带的,我们直接就可以使用. 我们需要来了解一下基本原理,它可以通过图片地址将图片下载下来. 我们来找一张图片做实例看一下. 查看图片的地址,把地 ...

  8. Python爬虫技术栈 | urllib库urllib3库

    ❤️urllib库详解❤️ 每篇前言: 第一部分:urllib库 一.request模块:发送请求 1.urlopen() (1)简单使用: (2)高级使用:如果想给链接传递一些参数,就要用到urlo ...

  9. 四、爬虫中的urllib库使用

    这篇介绍如何使用爬虫中的urllib库 小试牛刀 怎样扒网页呢? 其实就是根据URL来获取它的网页信息,虽然我们在浏览器中看到的是一幅幅优美的画面,但是其实是由浏览器解释才呈现出来的,实质它是一段HT ...

最新文章

  1. 在IIS中为SQL Server 2008配置报表服务
  2. 从零到一编码实现Redis分布式锁
  3. RESET MASTER和RESET SLAVE使用场景和说明,以及清除主从同步关系
  4. 曾经废寝忘食学到的技术,现在都没用了......
  5. 简单有效!在CV/NLP/DL领域中,有哪些修改一行代码或者几行代码提升性能的算法?...
  6. 通过预训练提升语言理解
  7. ros机器人导航设置原点,目标点
  8. 再次了解深浅拷贝问题
  9. 小虾教你网购组装电脑单
  10. python导入模块中的对象_详解Python项目开发时自定义模块中对象的导入和使用
  11. infor wms 中英文对照_WMS系统中波次管理有多大作用
  12. Nginx源码阅读 --- nginx evnet事件接受请求时,函数执行过程
  13. html pt兼容,FCKEditor,一个HTML可视化编辑器,兼容很好
  14. mysql 数据库并发限制_数据库的并发控制 - zhangjianyf的个人页面 - OSCHINA - 中文开源技术交流社区...
  15. html中加js弹窗,前端html+css+js弹窗的实现
  16. Android实时监听短信并上传服务器
  17. [Keil][Verilog][微机原理] 流水灯、存储器、外部中断实验_北京邮电大学计算机原理与应用课程实验报告
  18. web安全基础知识-part2
  19. 详解sprintf()sprintf_s()
  20. Laravel框架-迁移文件

热门文章

  1. 软件测试之图覆盖(作业3)
  2. noip模拟赛 寻宝之后
  3. Dapper使用在WCF上总是说Service找不到
  4. 都别争了!分布式锁也是锁
  5. box-sizing布局(简要介绍)
  6. RHEL7及CentOS7的语言、字符编码、键盘映射、X11布局设置(localectl)-系统管理(1)...
  7. iOS精品源码,GHConsole图片浏览器圆形进度条音视频传输连击礼物弹出动画
  8. DS8700 的CPU、缓存的选择及配置
  9. 智·御未来 亚信安全巡展·2017即将起航
  10. 数组的合并,去重,排序