Python实现爬虫设置代理IP和伪装成浏览器的方法分享


Posted in Python onMay 07, 2018

1.python爬虫浏览器伪装

#导入urllib.request模块
import urllib.request
#设置请求头
headers=("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0")
#创建一个opener
opener=urllib.request.build_opener()
#将headers添加到opener中
opener.addheaders=[headers]
#将opener安装为全局
urllib.request.install_opener(opener)
#用urlopen打开网页
data=urllib.request.urlopen(url).read().decode('utf-8','ignore')

2.设置代理

#定义代理ip
proxy_addr="122.241.72.191:808"
#设置代理
proxy=urllib.request.ProxyHandle({'http':proxy_addr})
#创建一个opener
opener=urllib.request.build_opener(proxy,urllib.request.HTTPHandle)
#将opener安装为全局
urllib.request.install_opener(opener)
#用urlopen打开网页
data=urllib.request.urlopen(url).read().decode('utf-8','ignore')

3.同时设置用代理和模拟浏览器访问

#定义代理ip
proxy_addr="122.241.72.191:808"
#创建一个请求
req=urllib.request.Request(url)
#添加headers
req.add_header("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)
#设置代理
proxy=urllib.request.ProxyHandle("http":proxy_addr)
#创建一个opener
opener=urllib.request.build_opener(proxy,urllib.request.HTTPHandle)
#将opener安装为全局
urllib.request.install_opener(opener)
#用urlopen打开网页
data=urllib.request.urlopen(req).read().decode('utf-8','ignore')

4.在请求头中添加多个信息

import urllib.request
page_headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0",
       "Host":"www.baidu.com",
       "Cookie":"xxxxxxxx"
       }
req=urllib.request.Request(url,headers=page_headers)
data=urllib.request.urlopen(req).read().decode('utf-8','ignore')

5.添加post请求参数

import urllib.request
import urllib.parse
#设置post参数
page_data=urllib.parse.urlencode([
                  ('pn',page_num),
                  ('kd',keywords)
                  ])
#设置headers
page_headers={
     'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0',
     'Connection':'keep-alive',
     'Host':'www.lagou.com',
     'Origin':'https://www.lagou.com',
     'Cookie':'JSESSIONID=ABAAABAABEEAAJA8F28C00A88DC4D771796BB5C6FFA2DDA; user_trace_token=20170715131136-d58c1f22f6434e9992fc0b35819a572b',
     'Accept':'application/json, text/javascript, */*; q=0.01',
     'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8',
     'Referer':'https://www.lagou.com/jobs/list_%E6%95%B0%E6%8D%AE%E6%8C%96%E6%8E%98?labelWords=&fromSearch=true&suginput=',
     'X-Anit-Forge-Token':'None',
     'X-Requested-With':'XMLHttpRequest'
     }
#打开网页
req=urllib.request.Request(url,headers=page_headers)
data=urllib.request.urlopen(req,data=page_data.encode('utf-8')).read().decode('utf-8')

6.利用phantomjs模拟浏览器请求

#1.下载phantomjs安装到本地,并设置环境变量
from selenium import webdriver
bs=webdriver.PhantomJS()
#打开url
bs.get(url)
#获取网页源码
url_data=bs.page_source
#将浏览到的网页保存为图片
bs.get_screenshot_as_file(filename)

7.phantomjs设置user-agent和cookie

from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
dcap = dict(DesiredCapabilities.PHANTOMJS)
dcap["phantomjs.page.settings.userAgent"] = ("Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0")
bs = webdriver.PhantomJS(desired_capabilities=dcap)
bs.get(url)
#删除cookie
bs.delete_all_cookies()
#设置cookie
#cookie格式:在浏览器cookie中查看,一个cookie需要包含以下参数,domain、name、value、path
cookie={
  'domain':'.www.baidu.com', #注意前面有.
  'name':'xxxx', 
  'value':'xxxx', 
  'path':'xxxx'
  }
#向phantomjs中添加cookie
bs.add_cookie(cookie)

8.利用web_driver工具

#1.下载web_driver工具(如chromdriver.exe)及对应的浏览器
#2.将chromdriver.exe放到某个目录,如c:\chromdriver.exe
from selenium import webdriver
driver=webdriver.Chrome(executable_path="C:\chromdriver.exe")
#打开url
driver.get(url)

以上这篇Python实现爬虫设置代理IP和伪装成浏览器的方法分享就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Linux中Python 环境软件包安装步骤
Mar 31 Python
Python安装官方whl包和tar.gz包的方法(推荐)
Jun 04 Python
Python 文本文件内容批量抽取实例
Dec 10 Python
python3对拉勾数据进行可视化分析的方法详解
Apr 03 Python
OpenCV搞定腾讯滑块验证码的实现代码
May 18 Python
python反编译学习之字节码详解
May 19 Python
为什么从Python 3.6开始字典有序并效率更高
Jul 15 Python
pytorch多GPU并行运算的实现
Sep 27 Python
python argparser的具体使用
Nov 10 Python
在Python中使用turtle绘制多个同心圆示例
Nov 23 Python
vue常用指令代码实例总结
Mar 16 Python
Python作用域和名称空间的详细介绍
Apr 13 Python
Pyspider中给爬虫伪造随机请求头的实例
May 07 #Python
python通过伪装头部数据抵抗反爬虫的实例
May 07 #Python
Django Web开发中django-debug-toolbar的配置以及使用
May 06 #Python
python安装模块如何通过setup.py安装(超简单)
May 05 #Python
python实现守护进程、守护线程、守护非守护并行
May 05 #Python
Linux(Redhat)安装python3.6虚拟环境(推荐)
May 05 #Python
Python3中的json模块使用详解
May 05 #Python
You might like
CodeIgniter中使用cookie的三种方式详解
2014/07/18 PHP
PHP GD库生成图像的几个函数总结
2014/11/19 PHP
PHP之密码加密的几种方式
2015/07/29 PHP
需要做特殊处理的DOM元素属性的访问
2010/11/05 Javascript
JavaScript中使用Math.floor()方法对数字取整
2015/06/15 Javascript
jQuery版本升级踩坑大全
2016/01/12 Javascript
为什么JavaScript没有块级作用域
2016/05/22 Javascript
js原生Ajax的封装和原理详解
2017/03/11 Javascript
jQuery niceScroll滚动条错位问题的解决方法
2018/02/03 jQuery
vue如何引入sass全局变量
2018/06/28 Javascript
VueCli3构建TS项目的方法步骤
2018/11/07 Javascript
javascript实现滚动条效果
2020/03/24 Javascript
js 压缩图片的示例(只缩小体积,不更改图片尺寸)
2020/10/21 Javascript
10款最好的Web开发的 Python 框架
2015/03/18 Python
Python操作MySQL数据库9个实用实例
2015/12/11 Python
Python3连接SQLServer、Oracle、MySql的方法
2018/06/28 Python
python,Django实现的淘宝客登录功能示例
2019/06/12 Python
树莓派+摄像头实现对移动物体的检测
2019/06/22 Python
Pandas之Fillna填充缺失数据的方法
2019/06/25 Python
python [:3] 实现提取数组中的数
2019/11/27 Python
Python3交互式shell ipython3安装及使用详解
2020/07/11 Python
python 下载文件的几种方法汇总
2021/01/06 Python
html5标记文字_动力节点Java学院整理
2017/07/11 HTML / CSS
全球性的奢侈品梦工厂:Forzieri(福喜利)
2019/02/20 全球购物
应届生法律顾问求职信
2013/11/19 职场文书
教学评估实施方案
2014/03/16 职场文书
房屋出售协议书
2014/04/10 职场文书
《黄山奇石》教学反思
2014/04/19 职场文书
竞选学习委员演讲稿
2014/04/28 职场文书
大学理论知识学习自我鉴定
2014/04/28 职场文书
幼儿园健康教育方案
2014/06/14 职场文书
节能减耗标语
2014/06/21 职场文书
电影雷锋观后感
2015/06/10 职场文书
Python开发工具Pycharm的安装以及使用步骤总结
2021/06/24 Python
Vue的生命周期一起来看看
2022/02/24 Vue.js
P站美图推荐——变身女主角特辑
2022/03/20 日漫