利用Python爬蟲刷店鋪微博等訪問量最簡單有效教程


一、安裝必要插件

測試環境:Windows 10 + Python 3.7.0

(1)安裝Selenium

          pip install selenium

          pip install requests

每個版本支持的 Chrome版本是不一樣的,必須要對應的版本才能驅動瀏覽器。

官方網站被牆,可以下載全版本的:http://npm.taobao.org/mirrors/chromedriver

        比如我的Chrome瀏覽器和Webdriver版本對應都用V75的:

      

(4)Chrome WebDriver安裝

1. Windows 安裝方法:

下載壓縮包解壓,chromedriver.exe 和python.exe 都放到python根目錄下即可。

2. Linux 安裝方法:

把解壓的文件放到 /usr/bin 目錄下,並且修改好權限。

 

二、代碼模板

目標:使用代碼控制瀏覽器訪問指定的鏈接,並且每次訪問使用不同的代理。

代理:使用的是大象代理的api接口提取代理IP。

這段代碼穩定性還不錯,超時等錯誤就會重啟腳本繼續獲取新的代理IP,保證腳本能夠長時間運行。

 

import random
import requests
import time
from selenium import webdriver
import sys
import os

# 隨機獲取瀏覽器標識
def get_UA():
    UA_list = [
        "Mozilla/5.0 (Linux; Android 4.1.1; Nexus 7 Build/JRO03D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Safari/535.19",
        "Mozilla/5.0 (Linux; U; Android 4.0.4; en-gb; GT-I9300 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",
        "Mozilla/5.0 (Linux; U; Android 2.2; en-gb; GT-P1000 Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1",
        "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0",
        "Mozilla/5.0 (Android; Mobile; rv:14.0) Gecko/14.0 Firefox/14.0",
        "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.94 Safari/537.36"
    ]
    randnum = random.randint(0, len(UA_list)-1)
    h_list = UA_list[randnum]
    return h_list

# 獲取代理IP
def get_ip():
    # 這里填寫大象代理api地址,num參數必須為1,每次只請求一個IP地址
    url = 'http://www.baidu.com'
    response = requests.get(url)
    response.close()
    ip = response.text
    print(ip)
    return ip

if __name__ == '__main__':
    url = "https://www.hao123.com/"
    # 無限循環,每次都要打開一個瀏覽器窗口,不是標簽
    while 1:
        # 調用函數獲取瀏覽器標識, 字符串
        headers = get_UA()
        # 調用函數獲取IP代理地址,這里獲取是字符串,而不是像前兩個教程獲得的是數組
        proxy = get_ip()
        # 使用chrome自定義
        chrome_options = webdriver.ChromeOptions()
        # 設置代理
        chrome_options.add_argument('--proxy-server=http://'+proxy)
        # 設置UA
        chrome_options.add_argument('--user-agent="'+headers+'"')
        # 使用設置初始化webdriver
        driver = webdriver.Chrome(chrome_options=chrome_options)

        try:
            # 訪問超時30秒
            driver.set_page_load_timeout(30)
            # 訪問網頁
            driver.get(url)
            # 退出當前瀏覽器
            driver.close()
            # 延遲1~3秒繼續
            time_delay = random.randint(1, 3)
            while time_delay > 0:
                print(str(time_delay) + " seconds left!!")
                time.sleep(1)
                time_delay = time_delay - 1
                pass
        except:
            print("timeout")
            # 退出瀏覽器
            driver.quit()
            time.sleep(1)
            # 重啟腳本, 之所以選擇重啟腳本是因為,長時間運行該腳本會出現一些莫名其妙的問題,不如重啟解決
            python = sys.executable
            os.execl(python, python, *sys.argv)
        finally:
            pass

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM