本人刚刚学习爬虫,见每次都需要添加报头比较繁琐,故将该过程封装为Url_ProxyHelper类,代码如下

 import urllib.request as ur

 class Url_ProxyHelper:
def __init__(self, url, proxy_add, savepath=None):
self.url = url
self.proxy_add = proxy_add
self.req = None
self.proxy = None
self.opener = None
self.info = None
self.save_path = savepath # 报头代理设置
def set_UrlAndProxy(self):
# 添加报头
self.req = ur.Request(self.url)
self.req.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0') # 设置代理服务器
self.proxy = ur.ProxyHandler({'http': self.proxy_add})
self.opener = ur.build_opener(self.proxy, ur.HTTPHandler)
ur.install_opener(self.opener)
return self.req # 数据存档
def save_InFile(self):
self.req = self.set_UrlAndProxy()
self.info = ur.urlopen(self.req).read()
open(self.save_path, 'wb').write(self.info) # 数据返回
def feedbak_info(self):
self.req = self.set_UrlAndProxy()
self.info = ur.urlopen(self.req).read().decode('utf-8') # decode()用来解码,特别是中文
return str(self.info)

测试:

 from Url_ProxyHelper import Url_ProxyHelper

 url = "https://www.baidu.com/"
save_path = "E:/workspace/PyCharm/codeSpace/books/python_web_crawler_book/chapter6/demo4/test_url_proxy.html"
proxy = "175.155.24.20:808" # 调用Url_ProxyHelper类
#uph = Url_ProxyHelper(url, proxy, savepath=save_path)
uph = Url_ProxyHelper(url, proxy) info = uph.feedbak_info() print(info)

手动爬虫之报头及代理封装类(python3)的更多相关文章

  1. Py之Crawler:爬虫利用随机选取代理访问服务器的方法实现下载某网址上所有的图片到指定文件夹——Jason niu

    #Py之Crawler:爬虫利用随机选取代理访问服务器的方法实现下载某网址上所有的图片到指定文件夹 import urllib.request import os import random def ...

  2. 反爬虫之搭建IP代理池

    反爬虫之搭建IP代理池 听说你又被封 ip 了,你要学会伪装好自己,这次说说伪装你的头部.可惜加了header请求头,加了cookie 还是被限制爬取了.这时就得祭出IP代理池!!! 下面就是requ ...

  3. 爬虫反爬之代理IP

    爬虫反爬之代理IP 代理IP其实本就是在requests模块中的参数 定义: 代替原来的IP地址去对接网络的IP地址. 作用: 隐藏自身真实IP,避免被封. 获取代理IP网站 西刺代理.快代理.全网代 ...

  4. 网络爬虫一定要用代理IP吗

    数据采集现在已经成为大数据时代不可以缺少的一部分,在数据采集过程中,很多人都会用到代理ip,那么网络爬虫一定要用代理IP吗?答案虽然不是肯定的,但出现以下情况一定是需要用到代理IP的.1.在爬虫的时候 ...

  5. 手动爬虫之流程笔记1(python3)

    一.引入拓展库 由于刚刚起步学习爬虫,故从urllib库开始 首先引入urllib,这里主要用到urllib中request类 import urllib.request as ur 二.设置全局参数 ...

  6. 手动爬虫之淘宝笔记本栏(ptyhon3)

    1.这次爬虫用到了之前封装的Url_ProxyHelper类,源代码如下 import urllib.request as ur class Url_ProxyHelper: def __init__ ...

  7. python 网页爬虫+保存图片+多线程+网络代理

    今天,又算是浪费了一天了.python爬虫,之前写过简单的版本,那个时候还不懂原理,现在算是收尾吧. 以前对网页爬虫不了解,感觉非常神奇,但是解开这面面纱,似乎里面的原理并不是很难掌握.首先,明白一个 ...

  8. C#多线程爬虫抓取免费代理IP

    这里用到一个HTML解析辅助类:HtmlAgilityPack,如果没有网上找一个增加到库里,这个插件有很多版本,如果你开发环境是使用VS2005就2.0的类库,VS2010就使用4.0,以此类推.. ...

  9. 简单爬虫-爬取免费代理ip

    环境:python3.6 主要用到模块:requests,PyQuery 代码比较简单,不做过多解释了 #!usr/bin/python # -*- coding: utf-8 -*- import ...

随机推荐

  1. DDD~大话目录

    来自:http://www.cnblogs.com/lori/p/3472789.html DDD~DDD从零起步架构说明 DDD~概念中的DDD DDD~microsoft NLayerApp项目中 ...

  2. Tcp Ip -- tcpdump win窗口大小

    问题介绍 今天,有内部模块与外部系统断连. (外部系统smgw,内部接口interface) smgw <----> interface 有消息交互. 通过tcpdump -xns0 po ...

  3. Struts2架构分析和执行机制

    实例分析 1.在浏览器中输入url地址后,会通过http协议发送给tomcat,tomacat收到请求后查看訪问的是哪个 webapplication(例如以下图的Struts2_0100_Intro ...

  4. 冻结 锁定 固定 行 列 表头 抬头 html table jquery 全兼容常见浏览器

    转:http://www.cnblogs.com/sorex/archive/2011/06/30/2093499.html <!DOCTYPE html PUBLIC "-//W3C ...

  5. Atitit.md5 实现原理

    Atitit.md5 实现原理 1. 算法流程图2 2. MD5算法过程:2 2.1. 3. 处理分组数据3 3. MD5加密字符串实例5 4. Md5的历史7 4.1.1. MD27 4.1.2. ...

  6. loongson官方PMON使用

    目录 [隐藏]  1 PMON使用介绍 1.1 进入PMON控制界面 1.2 Pmon的图形界面 1.3 Pmon的基本命令 1.3.1 Boot and Load 启动与加载内核 1.3.2 MyC ...

  7. OpenGL数据类型及相应C数据类型

  8. SonarQube 7.x 的安装使用 + 集成Maven 使用

    SonarQube是管理代码质量一个开放平台,可以快速的定位代码中潜在的或者明显的错误,下面将会介绍一下这个工具的安装.配置以及使用. 下载地址:http://www.sonarqube.org/do ...

  9. Linux制作wifi热点/无线路由

    参考: http://blog.csdn.net/u011641885/article/details/495121991.工具/原料    有无线网卡(usb接口的RT3070无线网卡).有线网卡的 ...

  10. SSH初体验系列--Hibernate--3--单值与分页查询

    前言 查询可以按结果集分2类:单个结果 和 数组 ; 其中,返回数组,在这个 数据库数据量随随便便就能上几十万的互联网时代大背景下,常常需要做分页处理, 所以这里就说一下单值和分页, 算是对上一篇&q ...