Hướng dẫn dùng win32com python

Tôi nghĩ tôi cũng sẽ thêm một cái gì đó vào việc điều hướng qua các thư mục - tất cả đều được lấy từ tài liệu của Microsoft ở trên, nhưng có thể hữu ích khi có ở đây, đặc biệt nếu bạn đang cố gắng đi bất cứ nơi nào trong cấu trúc thư mục Outlook trừ hộp thư đến.

Bạn có thể điều hướng qua bộ sưu tập thư mục bằng cách sử dụng folders - lưu ý trong trường hợp này, không có GetDefaultFolder sau GetNamespace (nếu không bạn sẽ có thể kết thúc với hộp thư đến).

Outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace('MAPI')
folder = Outlook.Folders[1]

Số là chỉ mục của thư mục bạn muốn truy cập. Để tìm hiểu có bao nhiêu thư mục con trong đó:

folder.Count

Nếu có thêm thư mục con, bạn có thể sử dụng Folders khác để đi sâu hơn:

folder.Folders[2]

Folders trả về danh sách các thư mục con, vì vậy để có được tên của tất cả các thư mục trong thư mục hiện tại, bạn có thể sử dụng một vòng lặp nhanh.

for i in range(folder.Count):
    print (folder[i].Name)

Mỗi thư mục con có .Items phương pháp để có được danh sách các email.

Hãy tưởng tượng vào một buổi sáng sớm, nơi bạn đang nhâm nhi một tách cà phê nóng và máy tính của bạn đọc những tiêu đề mới nhất cho bạn — tất cả đều tự động. Điều đó nghe có vẻ tuyệt vời phải không?

Chà, với Python, bạn có thể xây dựng trình đọc tin được cá nhân hóa của riêng mình, trình đọc này sẽ đọc tất cả các tiêu đề hàng đầu cho bạn, cùng với các đoạn trích của mỗi tiêu đề. Vâng đúng vậy. Bằng cách sử dụng các thư viện phù hợp, bạn có thể khiến Python thực hiện tất cả các thói quen buổi sáng của mình mà không cần phải tự đọc từng từ.

Đây là cách bạn có thể viết mã này và chỉnh sửa nó cho trang web tin tức yêu thích của bạn.

  • Điều kiện tiên quyết để chạy mã
  • Viết mã bằng Python
  • Sử dụng mô-đun súp tuyệt đẹp của Python để đọc tin tức hàng ngày của bạn
  • Sử dụng Python để đọc các tiêu đề hàng ngày của bạn thật dễ dàng

Điều kiện tiên quyết để chạy mã

Trước khi bắt đầu viết mã, bạn cần thực hiện một số điều kiện tiên quyết. Đây là một số yêu cầu rất cơ bản, có thể giúp việc sử dụng Python dễ dàng và hiệu quả hơn.

  1. Python: Cài đặt phiên bản Python mới nhất sẽ là một quyết định đúng đắn. Bạn có thể cài đặt bất kỳ IDE Python nào để có kết quả tốt nhất.
  2. Trang web tin tức / truy cập internet: Vì mã Python đọc các tiêu đề hàng đầu từ trang web yêu thích của bạn, bạn cần đảm bảo rằng bạn có thể truy cập trang web trong khi chạy mã này.

Toàn bộ mã được viết bằng Jupyter Notebook, một IDE Python phổ biến cho hướng dẫn này. Ngoài ra, trang web tin tức của India Today được mã hóa trong mã mẫu.

Để tải xuống Máy tính xách tay Jupyter, bạn có thể sử dụng nó như một phần của gói anaconda hoặc tải xuống phiên bản độc lập trên hệ thống của bạn.

Tải xuống: Anaconda | Máy tính xách tay Jupyter

Nếu không có thêm bất kỳ điều gì, chúng ta hãy nghiên cứu sâu hơn về mã.

Để bắt đầu, bạn cần nhập một vài thư viện Python, mỗi thư viện phục vụ các mục đích khác nhau.

import win32com.client as wincl
from urllib.request import urlopen as ureq
from bs4 import BeautifulSoup as soup
sp = wincl.Dispatch("SAPI.spVoice")

Ở đâu:

  • win32com.client: Thư viện này tương tác với các thiết bị Windows và chạy các chương trình Python một cách liền mạch.
  • urllib.request: Thư viện này xử lý các giá trị URL từ mô-đun yêu cầu.
  • bs4: Thư viện BS4 chứa chức năng Beautiful Soup, chức năng này quét dữ liệu từ các trang web sử dụng Python.
  • sp = wincl.Dispatch (“SAPI.spVoice”): Kích hoạt Lệnh thoại trong Windows.

Mã này sẽ chỉ hoạt động trên Windows, vì bạn sẽ gọi thư viện win32.com.client.

Tiếp theo, bạn cần xác định URL (liên kết) của trang web trong url biến, được lưu trữ trong bộ nhớ của Python.

url = https://www.indiatoday.in/top-stories

Tạo một ứng dụng khách biến mới để lưu trữ lệnh mở URL.

client = ureq(url)
print(client)

ở đâu:

  • khách hàng: Biến mới.
  • urq: Hàm Python được nhập từ urllib.request, hàm này sẽ mở url được lưu trữ.

Vì bạn đã mở URL trong bộ nhớ, nên đã đến lúc kiểm tra xem trang web được đề cập có cho phép các kết nối không an toàn qua Python hay không. Bạn có thể in biến máy khách và kiểm tra kết quả đầu ra.

Có hai khả năng với lệnh in:

  • Lỗi HTTP: Khi một trang web được bảo mật, bạn không thể cắt nội dung bằng Python.
  • Đoạn mã: Nếu một đoạn mã được trả lại sau khi chạy trang web, hãy giả sử rằng bạn có thể dễ dàng lấy các tiêu đề.

Khi bạn đã xác định URL của trang web tin tức trong lệnh URL, đã đến lúc nhập mã HTML vào một biến.

page_html = client.read()
print(page_html)

Bạn cần in mã HTML của trang web được nhập vào Python như một bước phòng ngừa. Bạn thậm chí có thể đối sánh mã này với mã trang web có sẵn trong Quan sát Lựa chọn.

Trước khi chuyển đổi mã, bạn cần đóng trang web khỏi bộ nhớ của Python bằng cách sử dụng lệnh close.

client.close()

Vì bạn đã nhập mã HTML vào một biến Python, bạn cần chuyển đổi nó thành một định dạng Python có thể đọc được để áp dụng tìm thấy tìm kiếm lệnh để tìm kiếm từ khóa.

Bạn có thể chuyển lệnh sau để chuyển đổi mã HTML:

page_soup = soup(page_html , "html.parser")

Ở đâu:

  • page_soup: Biến mới.
  • Súp: Bí danh cho mô-đun Beautiful Soup.
  • page_html: Biến chứa mã HTML từ trang web.
  • html_parser: Cú pháp mặc định để chuyển đổi mã HTML.

Khi mã đã sẵn sàng để sử dụng, đã đến lúc kiểm tra mã HTML của trang web để bắt đầu tìm kiếm các từ khóa tiêu đề.

Để làm như vậy, hãy nhấp chuột phải vào bất kỳ đâu trên trang web và nhấp vào Kiểm tra. Thao tác này sẽ mở mã HTML cho trang web được đề cập.

Trên cửa sổ mã của trang web, cuộn xung quanh, cho đến khi bạn tìm thấy các thẻ vùng chứa lưu trữ các tiêu đề.

Những thứ này được chứa trong xem-nội dung trên trang web India Today. Vùng chứa của mỗi trang web tin tức khác nhau, nhưng bạn sẽ có thể điều hướng qua mã một cách tương đối dễ dàng.

articles = page_soup.find("div" , { "class" : "view-content" })

Cuối cùng, bạn cần nắm bắt các thẻ phụ, chứa các tiêu đề chính mà Python sẽ đọc cho bạn.

articles = articles.findAll("div" , {"class" : "catagory-listing"})

Vùng chứa nội dung xem sẽ chứa nhiều tiêu đề, lớp vỏ bên ngoài cho các tiêu đề của bạn.

Để nắm bắt các thẻ H2 và các đoạn trích được liệt kê với mỗi dòng tiêu đề, bạn cần chạy một vòng.

i = 1
for x in articles:
title = x.find("h2").text
para = x.find("p").text
print(i , title , "
" , "
" , para , "
" , "
")
sp.Speak(title)
sp.Speak(para)
i=i+1

Ở đâu:

  • tôi: Biến bộ đếm mới, sẽ được tăng tự động.
  • chức vụ: Biến mới để lưu dòng tiêu đề (h2).
  • para: Biến mới để giữ các đoạn văn được liên kết với mỗi H2.
  • in: Tiêu đề của headline và para sẽ được in trên giao diện Python.
  • sp.Speak (Tiêu đề): Python sẽ đọc ra từng tiêu đề được lưu trữ.
  • sp.Speak (para): Python sẽ đọc ra từng đoạn văn bản được lưu trữ.
  • i = i + 1: Lệnh này tự động tăng số sê-ri được liên kết với mỗi dòng tiêu đề được hiển thị trên giao diện của Python.

Sử dụng mô-đun súp tuyệt đẹp của Python để đọc tin tức hàng ngày của bạn

Mỗi khi bạn chạy mã, các tiêu đề mới từ trang web tin tức sẽ được tải xuống trước khi được đọc to. Python thực thi mã mỗi khi bạn chạy bộ mã, do đó giúp bạn cập nhật các thay đổi trên trang web.

Các tiêu đề cũ hơn sẽ tiếp tục được Python hiển thị và đọc ra cho đến khi bạn làm mới và chạy lại mã.

Sử dụng Python để đọc các tiêu đề hàng ngày của bạn thật dễ dàng

Python, là một ngôn ngữ mã nguồn mở, cung cấp một loạt các công cụ như Beautiful Soup, Selenium và các khung công tác khác — cho người mới bắt đầu cũng như người dùng nâng cao.

Nếu bạn muốn nhận tin tức hàng ngày của mình bằng giọng nói, Python sẽ giúp bạn dễ dàng hơn. Học ngôn ngữ cụ thể này cũng có thể giúp bạn trở thành một lập trình viên giỏi hơn trong mọi lĩnh vực.

10 công cụ hữu ích cho nhà phát triển Python

Cho dù bạn cần các công cụ Python cho khoa học dữ liệu, học máy, phát triển web hoặc bất kỳ thứ gì ở giữa, danh sách này đều có bạn.

Đọc tiếp

Thông tin về các Tác giả

Hướng dẫn dùng win32com python

Gaurav Siyal
(Đã xuất bản 56 bài báo)

Gaurav Siyal có hai năm kinh nghiệm viết bài, viết cho hàng loạt công ty tiếp thị kỹ thuật số và tài liệu về vòng đời phần mềm.

Xem thêm từ Gaurav Siyal

Theo dõi bản tin của chúng tôi

Tham gia bản tin của chúng tôi để biết các mẹo công nghệ, đánh giá, sách điện tử miễn phí và các ưu đãi độc quyền!

Bấm vào đây để đăng ký