標籤:

Python--使用Tor瀏覽器隱藏IP

作者:松愛家的小秦

介紹 Tor 瀏覽器,實現匿名 IP 爬蟲,防止 IP 封禁

在爬蟲過程中,如果操作不當,被伺服器監測到,就有可能導致自己的IP被網站封禁。在一定時間內,拒絕訪問。那麼有什麼辦法可以解決呢?

再向大家推薦一款神器,Tor瀏覽器。這個瀏覽器,據說這個瀏覽器本來是

美國軍方用來獲取信息的工具。能夠匿名IP,把自己的的真實IP給隱藏。使用別人的ip。

要想進一步了解。Tor瀏覽器。可以看一下這些文章。

cnblogs.com/likeli/p/57

blog.csdn.net/whiup/art

deepdotweb.com/2014/05/

這裡稍微給大家介紹一下,使用方法。

(1)安裝tor瀏覽器

theonionrouter.com/proj

如果網頁進不去,那麼請自行找工具進去。

(2)如何配置tor瀏覽器

jingyan.baidu.com/artic

(3)安裝相應的庫

Pip install pysocks

Pip install stem

(4)測試一

1. import socks

2. import socket

3. import requests

4.

5. socks.set_default_proxy(socks.SOCKS5,"127.0.0.1",9150)

6. socket.socket = socks.socksocket

7.

8. a = requests.get("checkip.amazonaws.com").text

9.

10. print a

這個代碼會通過訪問

1. checkip.amazonaws.com

得到一個ip,你會發現這不是你的ip,大多情況下是國外的

(5)測試二

1. controller.signal(Signal.NEWNYM)

通過這個辦法可以切換ip,雖然ip匿名了,但是也不能重複只用一個ip

要定時切換。

1. #coding=utf-8

2. from stem import Signal

3. from stem.control import Controller

4. import socket

5. import socks

6. import requests

7. import time

8. import sys

9. reload(sys)

10. sys.setdefaultencoding(utf-8)

11.

12. controller = Controller.from_port(port=9151)

13. controller.authenticate()

14. socks.set_default_proxy(socks.SOCKS5,"127.0.0.1",9150)

15. socket.socket = socks.socksocket

16.

17. total_scrappy_time = 0

18. total_changeIP_time = 0

19. for x in range(0,10):

20. a = requests.get("checkip.amazonaws.com").text

21. print ("第"+str(x+1)+"次IP:"+a)

22.

23. time1 = time.time()

24. a = requests.get("santostang.com/").text

25.

26. time2 = time.time()

27. total_scrappy_time = total_scrappy_time + time2-time1

28. print ("第"+str(x+1)+"次抓取花費時間:"+str(time2-time1))

29.

30. time3 = time.time()

31. controller.signal(Signal.NEWNYM)

32. time.sleep(5)

33. time4 = time.time()

34. total_changeIP_time = total_changeIP_time + time4-time3-5

35. print ("第"+str(x+1)+"次更換IP花費時間: "+str(time4-time3-5))

36.

37. print ("平均抓取花費時間:"+str(total_scrappy_time/10))

38. print ("平均更換IP時間:"+str(total_changeIP_time/10))

推薦閱讀:

Python初學者筆記(二):用白話講「正則表達式」入門(上篇),看不懂算我輸!
python中 字元串是怎麼比較大小的?
向大牛大神大家求救!能否給我一個Python3.x+Appium的APP自動化測試的學習指導意見?
崔慶才老師爬蟲原理講解筆記

TAG:Python |