Pertanyaan Ubah alamat IP secara dinamis?


Pertimbangkan kasusnya, Saya ingin sering merayapi situs web, tetapi alamat IP saya diblokir setelah beberapa hari / batas.

Jadi, bagaimana cara mengubah alamat IP saya secara dinamis atau ide lain?


32
2018-03-04 10:27


asal


Jawaban:


Pendekatan menggunakan Scrapy akan menggunakan dua komponen a RandomProxy dan a RotateUserAgentMiddleware  dan modifikasi DOWNLOADER_MIDDLEWARES seperti berikut:

DOWNLOADER_MIDDLEWARS

Anda harus memasukkan komponen baru di settings.py

DOWNLOADER_MIDDLEWARES = {
        'scrapy.contrib.downloadermiddleware.retry.RetryMiddleware': 90,
        'tutorial.randomproxy.RandomProxy': 100,
        'scrapy.contrib.downloadermiddleware.httpproxy.HttpProxyMiddleware': 110,
        'scrapy.contrib.downloadermiddleware.useragent.UserAgentMiddleware' : None,
        'tutorial.spiders.rotate_useragent.RotateUserAgentMiddleware' :400,

    }

Proxy Acak:
Komponen ini akan memproses permintaan Scrapy menggunakan proxy acak dari daftar untuk menghindari larangan IP dan meningkatkan kecepatan perayapan.

Detail lebih lanjut di sini: (https://github.com/aivarsk/scrapy-proxies) Anda dapat membangun daftar proxy Anda dari pencarian internet cepat. Salin tautan dalam file list.txt sesuai dengan format url yang diminta.

Rotasi agen pengguna 

Untuk setiap permintaan kotor, agen pengguna acak akan digunakan dari daftar yang Anda tentukan sebelumnya

class RotateUserAgentMiddleware(UserAgentMiddleware):
    def __init__(self, user_agent=''):
        self.user_agent = user_agent

    def process_request(self, request, spider):
        ua = random.choice(self.user_agent_list)
        if ua:
            request.headers.setdefault('User-Agent', ua)

            # Add desired logging message here.
            spider.log(
                u'User-Agent: {} {}'.format(request.headers.get('User-Agent'), request),
                level=log.DEBUG
            )

    #the default user_agent_list composes chrome,I E,firefox,Mozilla,opera,netscape
    #for more user agent strings,you can find it in http://www.useragentstring.com/pages/useragentstring.php
    user_agent_list = [\
        "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1"\
        "Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11",\
        "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6",\
        "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6",\
        "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/19.77.34.5 Safari/537.1",\
        "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5",\
        "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.36 Safari/536.5",\
        "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",\
        "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",\
        "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",\
        "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",\
        "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",\
        "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",\
        "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",\
        "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",\
        "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.0 Safari/536.3",\
        "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24",\
        "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24"
       ]

Detail lebih lanjut di sini: (https://gist.github.com/seagatesoft/e7de4e3878035726731d)


27
2018-03-05 11:38



Jika Anda menggunakan R, Anda dapat melakukan perayapan web melalui TOR. Saya pikir TOR me-reset alamat IP-nya setiap 10 menit (?) Secara otomatis. Saya pikir ada cara memaksa TOR untuk mengubah IP dalam interval yang lebih pendek, tetapi itu tidak berhasil untuk saya. Sebagai gantinya Anda dapat mengatur beberapa contoh TOR dan kemudian beralih di antara instance independen (di sini Anda dapat menemukan penjelasan yang baik tentang cara menyiapkan beberapa contoh TOR: https://tor.stackexchange.com/questions/2006/how-to-run-multiple-tor-browsers-with-different-ips)

Setelah itu Anda dapat melakukan sesuatu seperti berikut di R (gunakan port-port browser TOR independen Anda dan daftar agen pengguna. Setiap kali Anda memanggil siklus fungsi getURL melalui daftar port / agen pengguna)

library(RCurl)

port <- c(a list of your ports)
proxy <- paste("socks5h://127.0.0.1:",port,sep="")
ua <- c(a list of your useragents)

opt <- list(proxy=sample(proxy,1),
            useragent=sample(ua,1),
            followlocation=TRUE,
            referer="",
            timeout=timeout,
            verbose=verbose,
            ssl.verifypeer=ssl)

webpage <- getURL(url=url,.opts=opt)

7
2017-07-18 17:29



Anda dapat mencoba menggunakan server proxy untuk mencegah diblokir. Ada layanan yang menyediakan proksi yang bekerja. Yang terbaik saya coba adalah https://gimmeproxy.com - mereka sering memeriksa proksi untuk berbagai parameter.

Untuk mendapatkan proxy dari mereka, Anda hanya perlu membuat permintaan berikut:

https://gimmeproxy.com/api/getProxy

Mereka akan memberikan respons JSON dengan semua data proxy yang dapat Anda gunakan nanti sesuai kebutuhan:

{
  "supportsHttps": true,
  "protocol": "socks5",
  "ip": "179.162.22.82",
  "port": "36915",
  "get": true,
  "post": true,
  "cookies": true,
  "referer": true,
  "user-agent": true,
  "anonymityLevel": 1,
  "websites": {
    "example": true,
    "google": false,
    "amazon": true
  },
  "country": "BR",
  "tsChecked": 1517952910,
  "curl": "socks5://179.162.22.82:36915",
  "ipPort": "179.162.22.82:36915",
  "type": "socks5",
  "speed": 37.78,
  "otherProtocols": {}
}

Anda dapat menggunakannya seperti ini dengan Curl:

curl -x socks5://179.162.22.82:36915 http://example.com

5
2018-02-06 22:27



Beberapa aplikasi VPN memungkinkan Anda untuk secara otomatis mengubah alamat IP Anda ke alamat IP acak baru pada interval yang ditetapkan seperti: setiap 2 menit. Kedua HMA! VPN Pro dan perangkat lunak VPN4ALL mendukung fitur ini.


2
2018-03-05 14:36



  • Coba VPN. hidemyass.com adalah salah satu opsi gratis yang mudah
  • Pinjam komputer lain

0
2018-03-04 14:57



Kata peringatan tentang VPN, periksa Persyaratan dan Ketentuan mereka dengan hati-hati karena pengikisan menggunakan mereka bertentangan dengan kebijakan pengguna mereka (Salah satu contohnya adalah Astrill). Saya mencoba alat penggaruk dan membuat akun saya terkunci


0
2017-07-29 21:14



Jika Anda memiliki IP publik. Tambahkan pada antarmuka Anda dan jika Anda menggunakan Linux, gunakan Iptables untuk mengalihkan IP publik tersebut.

Iptables aturan sampel untuk dua IP

iptables -t nat -A POSTROUTING -m statistic --mode random --probability 0.5 -j SNAT --to-source 192.168.0.2

iptables -t nat -A POSTROUTING -m statistic --mode random --probability 0.5 -j SNAT --to-source 192.168.0.3

Jika Anda memiliki 4 IP maka probabilitas akan menjadi 0,25.

Anda juga dapat membuat proxy Anda sendiri dengan langkah-langkah sederhana.

Aturan-aturan ini akan memungkinkan server proxy untuk beralih IPS yang keluar.


0
2017-07-31 12:36