這裡比較規範的使用了工程化的思想,考慮了日誌的編寫;爬蟲傳送get請求時,則考慮了ua等http request head部分的設定;並且支援**伺服器的資訊處理;返回的狀態碼不是200時的處理;並且考慮了超時問題,及網頁的編碼問題
import sys
import logging
import urllib
import random
import time
import socket
timeout = 15
socket.setdefaulttimeout(timeout)#這裡對整個socket層設定超時時間。後續檔案中如果再使用到socket,不必再設定
logger = logging.getlogger(「basicspider」)
formatter = logging.formatter("%(asctime)s %(levelname)s %(message)s")
file_handler = logging.filehandler(『basicspider.log』)
file_handler.setformatter(formatter)
consle_handler = logging.streamhandler(sys.stdout)
consle_handler.setformatter(formatter)
logger.setlevel(logging.info)
logger.addhandler(file_handler)
logger.addhandler(consle_handler)
proxy_range_min = 1
proxy_range_max = 10
proxy_range = 10
num = 10
logger.removehandler(file_handler)
logger.removehandler(consle_handler)
爬蟲 get方法 筆記
指定乙個 robots.txt 協議,告訴爬蟲引擎什麼可以爬取 例如 user agent 所用使用者 disallow 不允許爬取任何內容 不允許任何爬蟲爬取任何內容 urllib.request 用於開啟和讀寫url urllib.error 包含了由 urllib.request 引起的異常 ...
Python爬蟲中的Get和Post方法
通俗的說,get是直接請求 開啟,post是請求 對方通過後才能開啟。get和post最重要的區別是,get方式是直接一鏈結形式訪問,鏈結中包含了所有的引數,當然如果包含了密碼什麼的是不安全的,不過你可以直觀的看到自己提交的內容。post則不會再 上顯示所有引數,不過如果你想直接檢視提交了什麼就不太...
Python爬蟲中的Get和Post方法
通俗的說,get是直接請求 開啟,post是請求 對方通過後才能開啟。get和post最重要的區別是,get方式是直接一鏈結形式訪問,鏈結中包含了所有的引數,當然如果包含了密碼什麼的是不安全的,不過你可以直觀的看到自己提交的內容。post則不會再 上顯示所有引數,不過如果你想直接檢視提交了什麼就不太...