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 相关文章推荐
分享一个常用的Python模拟登陆类
Mar 29 Python
用Python遍历C盘dll文件的方法
May 06 Python
python利用正则表达式提取字符串
Dec 08 Python
Python基于列表list实现的CRUD操作功能示例
Jan 05 Python
Python实现利用163邮箱远程关电脑脚本
Feb 22 Python
python3实现网络爬虫之BeautifulSoup使用详解
Dec 19 Python
python调用c++ ctype list传数组或者返回数组的方法
Feb 13 Python
Django 对象关系映射(ORM)源码详解
Aug 06 Python
TensorFlow设置日志级别的几种方式小结
Feb 04 Python
Python进程Multiprocessing模块原理解析
Feb 28 Python
Pycharm安装Qt Design快捷工具的详细教程
Nov 18 Python
python3中celery异步框架简单使用+守护进程方式启动
Jan 20 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
php面向对象全攻略 (十五) 多态的应用
2009/09/30 PHP
PHP静态文件生成类实例
2014/11/29 PHP
PHP实现的简单mock json脚本分享
2015/02/10 PHP
php实现图片局部打马赛克的方法
2015/02/11 PHP
PHP实现简易计算器功能
2020/08/28 PHP
Ajax同步与异步传输的示例代码
2013/11/21 Javascript
jquery和ajax的关系详细介绍
2013/11/29 Javascript
JavaScript异步编程Promise模式的6个特性
2014/04/03 Javascript
我的Node.js学习之路(四)--单元测试
2014/07/06 Javascript
JavaScript正则表达式之multiline属性的应用
2015/06/16 Javascript
关于动态生成dom绑定事件失效的原因及解决方法
2016/08/06 Javascript
JavaScript实现url参数转成json形式
2016/09/25 Javascript
vue 和vue-touch 实现移动端左右导航效果(仿京东移动站导航)
2017/04/22 Javascript
收集前端面试题之url、href、src
2018/03/22 Javascript
JavaScript实现一个带AI的井字棋游戏源码
2018/05/21 Javascript
[01:07:19]DOTA2-DPC中国联赛 正赛 CDEC vs XG BO3 第一场 1月19日
2021/03/11 DOTA
[08:08]DOTA2-DPC中国联赛2月28日Recap集锦
2021/03/11 DOTA
Python实现的金山快盘的签到程序
2013/01/17 Python
Python程序设计入门(3)数组的使用
2014/06/16 Python
python中实现指定时间调用函数示例代码
2017/09/08 Python
Python使用smtp和pop简单收发邮件完整实例
2018/01/09 Python
numpy concatenate数组拼接方法示例介绍
2019/05/27 Python
Python3内置模块之json编解码方法小结【推荐】
2020/12/09 Python
python程序输出无内容的解决方式
2020/04/09 Python
Django如何使用jwt获取用户信息
2020/04/21 Python
纯HTML5+CSS3制作生日蛋糕(代码易懂)
2016/11/16 HTML / CSS
New Era英国官网:美国棒球帽品牌
2018/03/21 全球购物
伦敦一卡通:The London Pass
2018/11/30 全球购物
掌上明珠Java程序员面试总结
2016/02/23 面试题
实验教师岗位职责
2014/02/13 职场文书
英语老师推荐信
2014/02/26 职场文书
物流专业求职信
2014/06/30 职场文书
优秀党员推荐材料
2014/12/18 职场文书
学会感恩主题班会
2015/08/12 职场文书
创业计划书之便利店
2019/09/05 职场文书
Python利器openpyxl之操作excel表格
2021/04/17 Python