Python 爬蟲handler和opener

urlopen()方法不支持代理、cookie等其他的HTTP/HTTPS高級功能

1. 最基礎的用法

    import urllib.request
    import urllib.parse
    
    url = "http://www.baidu.com/"
    headers = {
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3902.4 Safari/537.36',
    }
    
    # 創建處理器對象
    handler = urllib.request.HTTPHandler()
    
    # 創建opener對象
    opener = urllib.request.build_opener(handler)
    
   # 如果程序裏所有的請求都使用自定義的opener,可以使用urllib.request.install_opener() 將自定義的 opener 對象 定義爲 全局opener,表示之後凡是調用urlopen,都將使用這個opener來打開
   
    urllib.request.install_opener(opener)  #安裝一個全局的打開器(這一步可選不安裝採用默認)
    
    # 構造對象
    request = urllib.request.Request(url=url, headers=headers)
    
    # 這裏就不需要使用urlopen, 直接使用opener對象的open方法
    response = opener.open(url)
    
    with open('test.html', 'w', encoding="utf-8") as fp:
        fp.write(response.read().decode())

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