[ Selenium ] 偽造身份進行網路爬蟲
網路爬蟲做到這步,通常是在要大量訪問同一個網站,從事某些行為。這真的超不乖的,好孩子千萬別學。 訪問某些網站時,網站其實能因應不同的瀏覽器、作業系統等,提供不同的回應。例如下載軟體時會自動導向到適合的下載連結。這些訊息都藏在 header中的 user-agent中。 當大量訪問同一個網站,若 server端的警覺心比較強的情況下只依賴 Tor進行爬蟲,會發現每個訪問的用戶都來自一樣的瀏覽器和作業系統。 server端可能會使大量訪問的目的失效。 因此除了串改 ip外,最好也修改 user-agent,使 server端無法有效辨識。 Tor的部分可以參考之前分享的 " 使用 Tor進行網路爬蟲 " 和 " 多開 Tor client "。 >>> from selenium import webdriver >>> from selenium.webdriver.chrome.options import Options >>> >>> opts = Options() >>> >>> opts.add_argument("--incognito") # 使用無痕模式。用 selenium開瀏覽器已經很乾淨了,但疑心病重的可以用一下 >>> >>> proxy = "socks5://localhost:9050" >>> opts.add_argument('--proxy-server={}'.format(proxy)) # 讓 selenium透過 tor訪問 internet >>> >>> ua = "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:53.0) Gecko/20100101 Firefox/53.0" >>> opts.add_argument("user-agent={}".format(ua)) # 使用偽造的 use