def download():
while true:
glock.acquire()
if len(face_url_list)==0:
glock.release()
continue
else:
face_url = face_url_list.pop()
glock.release()
html = requests.get(face_url,headers=headers).content
split_list = face_url.split(』/』)
filename = split_list.pop()+』.html』
print(filename)
with open(filename,『wb』) as f:
print (html)
f.write(html)
# for face_url in face_url_list:
# html = requests.get(face_url,headers=headers).content
# # print (html)
# i = str(face_url)[-1:-7:-1]
# print(i)
# filename = str(i)+』.html』
# with open(filename,『wb』) as f:
# print (html)
# f.write(html)
def main():
for x in range(5):
th = threading.thread(target=spider)
th.start()
for x in range(2):
th = threading.thread(target=download)
th.start()
thread_log(『thread_log』)
ifname==『main』:
main()
學習總結:
1.在該任務中學會了多程序與多執行緒的區別(程序包含執行緒),利用多執行緒可以加快爬蟲的爬取速度
2.日誌模組的使用,方便以後檢查**
C語言封裝執行緒與日誌類
折騰了兩天,查半天資料還是不如自己動動手。如題這是兩個很常見的問題,雖然很多語言都封裝了執行緒,但是讓自己寫乙個還是比較麻煩的,這兒做乙個簡單的demo,大家可以去完善。日誌工具包 define max msg text 1024 10 define max msg title 1024 日誌訊息結...
多執行緒日誌追蹤
本文編寫主要目的是記錄工作中的一些程式設計思想和細節,以便後來查閱。由於專案中設計高併發內容,涉及到乙個執行緒建立多個子執行緒的情況。那麼,如何跟蹤日誌,識別子執行緒是由哪個主線程建立的,屬於哪個request請求。例如,在現有專案中,乙個裝置資訊上傳的請求 包括基本資料和異常資料兩種資料 然後主線...
python log日誌 多執行緒安全
python中的日誌檔案為logger,常用的有兩個 rotatingfilehandler timedrotatingfilehandler。檔案沒滿足分割條件前,儲存在 info.log 自己命名的檔案 中,如果滿足分割條件,會生成 info.log.1 下一次滿足分割條件後,將 info.lo...