Nhận liên kết Python BeautifulSoup
BeautifulSoup là thư viện Python của bên thứ ba được sử dụng để phân tích dữ liệu từ các trang web. Nó giúp quét web, đây là một quá trình trích xuất, sử dụng và thao tác dữ liệu từ các tài nguyên khác nhau Show Quét web cũng có thể được sử dụng để trích xuất dữ liệu cho mục đích nghiên cứu, hiểu/so sánh xu hướng thị trường, thực hiện giám sát SEO, v.v. Có thể chạy dòng dưới đây để cài đặt BeautifulSoup trên Windows - pip install beautifulsoup4 Sau đây là một ví dụ - Thí dụfrom bs4 import BeautifulSoup import requests url = "https://en.wikipedia.org/wiki/Algorithm" req = requests.get(url) soup = BeautifulSoup(req.text, "html.parser") print("The href links are :") for link in soup.find_all('a'): print(link.get('href')) đầu raThe href links are : … https://stats.wikimedia.org/#/en.wikipedia.org https://foundation.wikimedia.org/wiki/Cookie_statement https://wikimediafoundation.org/ https://www.mediawiki.org/ Giải trình
Gần đây tôi muốn lấy tất cả các liên kết trong kho lưu trữ các bản tin. Mục tiêu là có một tệp văn bản với các liên kết để tôi không phải xem từng bản tin theo cách thủ công Đây là một ví dụ trong thế giới thực vì vậy tôi muốn nó nhanh chóng và dễ dàng. Đây là cách tôi thực sự đã làm với python Gói quét web tốt nhất cho python trong BeautifulSoup. Và gói tốt nhất để thực hiện cuộc gọi url là Yêu cầu pip install beautifulsoup4, requests Tôi đã làm tất cả công việc của python trong sổ ghi chép jupyter. Tôi có xu hướng sử dụng jupyter nếu tôi đang thử nghiệm với python hoặc tạo một tập lệnh nhanh. Nhưng bạn chắc chắn có thể làm điều tương tự trong một. py hoặc trình chỉnh sửa mã Nhập các gói from bs4 import BeautifulSoup Lấy danh sách các trang trong kho lưu trữ bản tin URL = "https://www.comnetwork.org/newsletter-archive/" Vì sẽ không chỉ có các liên kết bản tin trong kho lưu trữ bản tin, tôi chỉ cần in tất cả chúng ra và dán chúng vào vim (nhưng bạn có thể sử dụng bất kỳ trình soạn thảo văn bản nào). Sau đó, tôi đã xóa bất kỳ thứ gì trông không giống liên kết bản tin Có nhiều cách tốt hơn để làm điều này. Thay vào đó, bạn có thể thêm vào danh sách trong python nếu bạn biết liên kết bản tin bắt đầu bằng gì. Nhưng tại thời điểm này, tôi nghĩ rằng sẽ nhanh hơn nếu thực hiện công việc theo cách thủ công Tôi nhận thấy rằng tất cả các trang bản tin đều bắt đầu bằng mailchi. mp Vì vậy, tôi đã xóa mọi thứ khác và thêm dấu ngoặc kép xung quanh các liên kết và dấu phẩy sau các liên kết Khi tôi hoàn thành, tôi đã dán lại các liên kết vào python Bây giờ tôi đã có một danh sách các liên kết bản tin. Đây là một mẫu archive_links = ["http://mailchi.mp/4bd5002a15e1/february2018", "http://mailchi.mp/comnetwork/16may2018"] Lấy tất cả các liên kết từ tất cả các trang for link in archive_links: Sử dụng vòng lặp for để duyệt qua danh sách. Lấy html từ mỗi trang. Tìm tất cả các liên kết. Và viết chúng vào một tập tin văn bản Lưu ý rằng tôi sử dụng open để ghi tệp văn bản. With được khuyên dùng vì nó tự động đóng tệp khi hoàn thành. Có một chữ "a" ở phần mở vì tôi đang nối thêm từng liên kết và không ghi đè lên. “\n” là ký tự dòng mới. Nó đặt mỗi liên kết trên một dòng riêng biệt Tại thời điểm này bản tin_links. txt nếu chứa đầy tất cả các liên kết từ tất cả các bản tin, kể cả những thứ tôi không cần. Vì vậy, tôi đã đi vào tập tin văn bản. Sắp xếp các liên kết. Và xóa bất cứ thứ gì mà tôi không muốn Bạn có thể xem video hướng dẫn đầy đủ về quy trình của tôi tại đây Nếu bạn yêu thích trăn và bạn biết mình yêu thích, hãy xem trang web tham khảo Pyspark của tôi và các câu chuyện phương tiện khác của tôi |