User-Agent反扒

#!/usr/bin/env python
# -*- coding:utf-8 -*-

import random
import requests

def load_page(url):
    """
    作用: 根據url發送請求,獲取服務器響應文件
    :param url: 需要爬取的url地址
    :return: string
    """
    
    # User-Agent 列表
    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.1) 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"
    ]
    
    # 隨機選擇一個User-Agent字符串
    # random.choic() 這個方法可以從列表中隨機的取出一個元素
    user_agent = random.choice(user_agent_list)
    
    headers = {
        "User-Agent": user_agent
    }
    
    # 構造請求對象
    response = requests.get(url=url, headers=headers, verify=False)
    
    # 返回響應的html內容
    return response.text

if __name__ == "__main__":
    url= input("請輸入需要抓取的網址:")
    html = load_page(url)
    print(html.encode("utf-8")

 

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