首页>代理ip知识与免费资源>正文
Python爬虫如何设置代理IP和伪装成浏览器?
发布日期:2019/9/17 9:48:15    阅读量:11831

一 :python爬虫浏览器伪装


1  #导入urllib.request模块

2  import urllib.request

3  #设置请求头

4  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")

5  #创建一个opener

6  opener=urllib.request.build_opener()

7  #将headers添加到opener中

8  opener.addheaders=[headers]

9  #将opener安装为全局

10 urllib.request.install_opener(opener)

11 #用urlopen打开网页

12 data=urllib.request.urlopen(url).read().decode('utf-8','ignore')


二 :设置代理


1  #定义代理ip

2  proxy_addr="122.241.72.191:808"

3  #设置代理

4  proxy=urllib.request.ProxyHandle({'http':proxy_addr})

5  #创建一个opener

6  opener=urllib.request.build_opener(proxy,urllib.request.HTTPHandle)

7  #将opener安装为全局

8  urllib.request.install_opener(opener)

9  #用urlopen打开网页

10 data=urllib.request.urlopen(url).read().decode('utf-8','ignore')


三 :同时设置用代理和模拟浏览器访问


1  #定义代理ip

2  proxy_addr="122.241.72.191:808"

3  #创建一个请求

4  req=urllib.request.Request(url)

5  #添加headers

6  req.add_header("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)

7  #设置代理

8  proxy=urllib.request.ProxyHandle("http":proxy_addr)

9  #创建一个opener

10 opener=urllib.request.build_opener(proxy,urllib.request.HTTPHandle)

11 #将opener安装为全局

12 urllib.request.install_opener(opener)

13 #用urlopen打开网页

14 data=urllib.request.urlopen(req).read().decode('utf-8','ignore')


四 :在请求头中添加多个信息


1  import urllib.request

2  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",

3       "Host":"www.baidu.com",

4       "Cookie":"xxxxxxxx"

5       }

6  req=urllib.request.Request(url,headers=page_headers)

7  data=urllib.request.urlopen(req).read().decode('utf-8','ignore')


五 :添加post请求参数


1   import urllib.request

2   import urllib.parse

3   #设置post参数

4   page_data=urllib.parse.urlencode([

5                  ('pn',page_num),

6                  ('kd',keywords)

7                  ])

8   #设置headers

9   page_headers={

10     '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',

11     'Connection':'keep-alive',

12     'Host':'www.lagou.com',

13     'Origin':'https://www.lagou.com',

14     'Cookie':'JSESSIONID=ABAAABAABEEAAJA8F28C00A88DC4D771796BB5C6FFA2DDA; user_trace_token=20170715131136-d58c1f22f6434e9992fc0b35819a572b',

15     'Accept':'application/json, text/javascript, */*; q=0.01',

16     'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8',

17     'Referer':'https://www.lagou.com/jobs/list_%E6%95%B0%E6%8D%AE%E6%8C%96%E6%8E%98?labelWords=&fromSearch=true&suginput=',

18     'X-Anit-Forge-Token':'None',

19     'X-Requested-With':'XMLHttpRequest'

20     }

21  #打开网页

22  req=urllib.request.Request(url,headers=page_headers)

23  data=urllib.request.urlopen(req,data=page_data.encode('utf-8')).read().decode('utf-8')


六 :利用phantomjs模拟浏览器请求


1  #1.下载phantomjs安装到本地,并设置环境变量

2  from selenium import webdriver

3  bs=webdriver.PhantomJS()

4  #打开url

5  bs.get(url)

6  #获取网页源码

7  url_data=bs.page_source

8  #将浏览到的网页保存为图片

9  bs.get_screenshot_as_file(filename)


七 :phantomjs设置user-agent和cookie


1  from selenium import webdriver

2  from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

3  dcap = dict(DesiredCapabilities.PHANTOMJS)

4  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")

5  bs = webdriver.PhantomJS(desired_capabilities=dcap)

6  bs.get(url)

7  #删除cookie

8  bs.delete_all_cookies()

9  #设置cookie

10 #cookie格式:在浏览器cookie中查看,一个cookie需要包含以下参数,domain、name、value、path

11 cookie={

12  'domain':'.www.baidu.com', #注意前面有.

13  'name':'xxxx', 

14  'value':'xxxx', 

15  'path':'xxxx'

16  }

17 #向phantomjs中添加cookie

18 bs.add_cookie(cookie)


八 :利用web_driver工具


1  #1.下载web_driver工具(如chromdriver.exe)及对应的浏览器

2  #2.将chromdriver.exe放到某个目录,如c:\chromdriver.exe

3  from selenium import webdriver

4  driver=webdriver.Chrome(executable_path="C:\chromdriver.exe")

5  #打开url

6  driver.get(url)