爬蟲工具selenium

在我爬蟲的過程中,遇到的主要問題有:有一些網頁鏈接似乎有重定向功能,獲取到的並不是真實的源碼;還有一些網站對ip的限制特別嚴重……

關於後者,我找過一些免費的ip網站如西刺,但是那些ip大多數都不能用(´゚д゚`)
這裏順便貼一下關於配置ip的代碼。

# 代理鏈表
proxy_list = []
with open("data/proxy.txt") as file:
    for line in file.readlines():
        proxy_list.append(line.strip())

And then.....

 html = s.get(url, headers=header, proxies=proxies)

後面我對付封ip的爬蟲問題時主要用了 selenium模擬用戶訪問行爲+隨機的睡眠時間。
selenium是一個自動化的測試工具,運行它的時候相應的瀏覽器會自動打開並進行操作(鍵入關鍵詞、點擊、跳轉等等)。這裏我用的是谷歌瀏覽器。

下載過程:
1、首先查一下自己谷歌瀏覽器的版本
2、查找對應的chromeDriver版本並下載
鏈接: http://npm.taobao.org/mirrors/chromedriver/
3、一開始我將chromeDrive-xx.exe放置到了python的script文件夾 和 谷歌瀏覽器的Application文件夾下,並將該文件夾(Application)的路徑添加到了環境變量path中,但是程序調用的時候一直有各種問題,後來我將執行文件直接放置在Python文件夾下,就ok了
selenium示例代碼:

from selenium import webdriver
import time
import random
options = webdriver.ChromeOptions()
options.add_argument('user-agent="Mozilla/5.0 (iPod; U; CPU iPhone OS 2_1 like Mac OS X; ja-jp) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5F137 Safari/525.20"')
browser = webdriver.Chrome(chrome_options=options)
browser.implicitly_wait(3)
try:
    browser.get("url")
    time.sleep(5+random.randint(1,9))
    title = browser.title
    print(title)
except:
    pass

同時我發現,運行selenium程序的時候最好還是把那個自動運行的瀏覽器開着,就是不要最小化它,否則容易停掉(個人經驗個人愚見,,Ծ‸Ծ,,)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章