Hướng dẫn python save webpage as html - python lưu trang web dưới dạng html

Hãy thử saveFullHtmlPage('https://www.google.com', 'google') 1 dưới đây hoặc điều chỉnh nó.

Sẽ lưu một sửa đổi *.html và lưu javascripts, css và hình ảnh dựa trên tập lệnh thẻ, liên kết và IMG (TAGS_INNER DIENS TÍNH NĂNG) trên thư mục

saveFullHtmlPage('https://www.google.com', 'google')
2.

import os, sys, re
import requests
from urllib.parse import urljoin
from bs4 import BeautifulSoup

def saveFullHtmlPage(url, pagepath='page', session=requests.Session(), html=None):
    """Save web page html and supported contents        
        * pagepath : path-to-page   
        It will create a file  `'path-to-page'.html` and a folder `'path-to-page'_files`
    """
    def savenRename(soup, pagefolder, session, url, tag, inner):
        if not os.path.exists(pagefolder): # create only once
            os.mkdir(pagefolder)
        for res in soup.findAll(tag):   # images, css, etc..
            if res.has_attr(inner): # check inner tag (file object) MUST exists  
                try:
                    filename, ext = os.path.splitext(os.path.basename(res[inner])) # get name and extension
                    filename = re.sub('\W+', '', filename) + ext # clean special chars from name
                    fileurl = urljoin(url, res.get(inner))
                    filepath = os.path.join(pagefolder, filename)
                    # rename html ref so can move html and folder of files anywhere
                    res[inner] = os.path.join(os.path.basename(pagefolder), filename)
                    if not os.path.isfile(filepath): # was not downloaded
                        with open(filepath, 'wb') as file:
                            filebin = session.get(fileurl)
                            file.write(filebin.content)
                except Exception as exc:
                    print(exc, file=sys.stderr)
    if not html:
        html = session.get(url).text
    soup = BeautifulSoup(html, "html.parser")
    path, _ = os.path.splitext(pagepath)
    pagefolder = path+'_files' # page contents folder
    tags_inner = {'img': 'src', 'link': 'href', 'script': 'src'} # tag&inner tags to grab
    for tag, inner in tags_inner.items(): # saves resource files and rename refs
        savenRename(soup, pagefolder, session, url, tag, inner)
    with open(path+'.html', 'wb') as file: # saves modified html doc
        file.write(soup.prettify('utf-8'))

Ví dụ lưu

saveFullHtmlPage('https://www.google.com', 'google')
3 dưới dạng
saveFullHtmlPage('https://www.google.com', 'google')
4 và nội dung trên thư mục
saveFullHtmlPage('https://www.google.com', 'google')
5. (thư mục hiện tại)
saving
saveFullHtmlPage('https://www.google.com', 'google')
3 as
saveFullHtmlPage('https://www.google.com', 'google')
4 and contents on
saveFullHtmlPage('https://www.google.com', 'google')
5 folder. (current folder)

saveFullHtmlPage('https://www.google.com', 'google')

Nội dung

  • Mục tiêu bài học
    • Về URL
  • Mở URL với Python
  • Lưu một bản sao cục bộ của một trang web
  • Bài đọc đề xuất
    • Đồng bộ hóa mã

Mục tiêu bài học

Về URL

Về URL

Mở URL với Python

protocol://host:port/path?query

Lưu một bản sao cục bộ của một trang web

http://oldbaileyonline.org

Bài đọc đề xuất

Đồng bộ hóa mã

http://oldbaileyonline.org:80

Bài học này giới thiệu các trình định vị tài nguyên thống nhất (URL) và giải thích cách sử dụng Python để tải xuống và lưu nội dung của trang web vào ổ cứng cục bộ của bạn.

http://oldbaileyonline.org/static/Project.jsp

Một trang web là một tệp được lưu trữ trên một máy tính khác, một máy được gọi là máy chủ web. Khi bạn đi đến một trang web, điều thực sự xảy ra là máy tính của bạn, (máy khách) gửi yêu cầu đến máy chủ (máy chủ) qua mạng và máy chủ trả lời bằng cách gửi lại một bản sao của trang cho máy của bạn. Một cách để đến một trang web với trình duyệt của bạn là theo một liên kết từ một nơi khác. Tất nhiên, bạn cũng có khả năng dán hoặc nhập Trình định vị tài nguyên thống nhất (URL) trực tiếp vào trình duyệt của bạn. URL cho biết trình duyệt của bạn nơi tìm tài nguyên trực tuyến bằng cách chỉ định máy chủ, thư mục và tên của tệp sẽ được truy xuất, cũng như loại giao thức mà máy chủ và trình duyệt của bạn sẽ đồng ý sử dụng trong khi trao đổi thông tin (như HTTP, Giao thức chuyển siêu văn bản). Cấu trúc cơ bản của URL là

https://www.oldbaileyonline.org/search.jsp?form=searchHomePage&_divs_fulltext=arsenic&kwparse=and&_persNames_surname=&_persNames_given=&_persNames_alias=&_offences_offenceCategory_offenceSubcategory=&_verdicts_verdictCategory_verdictSubcategory=&_punishments_punishmentCategory_punishmentSubcategory=&_divs_div0Type_div1Type=&fromMonth=&fromYear=&toMonth=&toYear=&ref=&submit.x=0&submit.y=0

Hãy cùng nhìn vào một vài ví dụ.

Mở URL với Python

Lưu một bản sao cục bộ của một trang web

Bài đọc đề xuất

Hướng dẫn python save webpage as html - python lưu trang web dưới dạng html

Đồng bộ hóa mã

Bài học này giới thiệu các trình định vị tài nguyên thống nhất (URL) và giải thích cách sử dụng Python để tải xuống và lưu nội dung của trang web vào ổ cứng cục bộ của bạn.

http://www.oldbaileyonline.org/browse.jsp?id=t17800628-33&div=t17800628-33

Một trang web là một tệp được lưu trữ trên một máy tính khác, một máy được gọi là máy chủ web. Khi bạn đi đến một trang web, điều thực sự xảy ra là máy tính của bạn, (máy khách) gửi yêu cầu đến máy chủ (máy chủ) qua mạng và máy chủ trả lời bằng cách gửi lại một bản sao của trang cho máy của bạn. Một cách để đến một trang web với trình duyệt của bạn là theo một liên kết từ một nơi khác. Tất nhiên, bạn cũng có khả năng dán hoặc nhập Trình định vị tài nguyên thống nhất (URL) trực tiếp vào trình duyệt của bạn. URL cho biết trình duyệt của bạn nơi tìm tài nguyên trực tuyến bằng cách chỉ định máy chủ, thư mục và tên của tệp sẽ được truy xuất, cũng như loại giao thức mà máy chủ và trình duyệt của bạn sẽ đồng ý sử dụng trong khi trao đổi thông tin (như HTTP, Giao thức chuyển siêu văn bản). Cấu trúc cơ bản của URL là

Hướng dẫn python save webpage as html - python lưu trang web dưới dạng html

Trang bảng điểm dùng thử của Benjamin Bowsey, 1780

Dành một vài phút để xem trang dùng thử Benjamin Bowsey. Ở đây chúng tôi không quan tâm nhiều đến những gì bảng điểm nói, nhưng những tính năng của trang. Lưu ý xem xem liên kết XML ở phía dưới sẽ đưa bạn đến một phiên bản được đánh dấu rất nhiều của văn bản có thể hữu ích cho một số loại nghiên cứu nhất định. Bạn cũng có thể xem xét quét tài liệu gốc, được phiên âm để tạo tài nguyên này.

Bây giờ, hãy để thử mở trang bằng Python. Sao chép chương trình sau vào Chỉnh sửa Komodo và lưu nó dưới dạng

saveFullHtmlPage('https://www.google.com', 'google')
9. Khi bạn thực hiện chương trình, nó sẽ
protocol://host:port/path?query
0 Tệp dùng thử,
protocol://host:port/path?query
1 Nội dung của nó thành chuỗi python có tên WebContent và sau đó
protocol://host:port/path?query
2 ba trăm ký tự đầu tiên của chuỗi vào khung đầu ra của lệnh. Sử dụng lệnh
protocol://host:port/path?query
3 trong Firefox để xác minh rằng nguồn HTML của trang giống như nguồn mà chương trình của bạn đã truy xuất. Mỗi trình duyệt có một phím tắt khác nhau để mở nguồn trang. Trong Firefox trên PC, đó là
protocol://host:port/path?query
4. Nếu bạn không thể tìm thấy nó trên trình duyệt của mình, hãy thử sử dụng công cụ tìm kiếm để tìm nó ở đâu. (Xem tham chiếu thư viện Python để tìm hiểu thêm về Urllib.)

________số 8

Năm dòng mã này đạt được rất nhiều rất nhanh. Hãy để chúng tôi dành một chút thời gian để đảm bảo rằng mọi thứ đều rõ ràng và bạn có thể nhận ra các khối xây dựng cho phép chúng tôi làm cho chương trình này làm những gì chúng tôi muốn nó làm.

URL, phản hồi và webcontent là tất cả các biến mà chúng tôi đã tự đặt tên.

URL giữ URL của trang web mà chúng tôi muốn tải xuống. Trong trường hợp này, đây là phiên tòa của Benjamin Bowsey.

Trên dòng sau, chúng tôi gọi hàm

protocol://host:port/path?query
5, được lưu trữ trong mô -đun Python có tên
protocol://host:port/path?query
6 và chúng tôi đã yêu cầu chức năng đó mở trang web được tìm thấy tại URL mà chúng tôi vừa chỉ định. Sau đó, chúng tôi đã lưu kết quả của quá trình đó vào một biến có tên là phản hồi. Biến đó hiện chứa một phiên bản mở của trang web được yêu cầu.

Sau đó, chúng tôi sử dụng phương thức

protocol://host:port/path?query
1 mà chúng tôi đã sử dụng trước đó, để sao chép nội dung của trang web mở đó vào một biến mới có tên WebContent.

Hãy chắc chắn rằng bạn có thể chọn ra các biến (có 3 trong số chúng), các mô -đun (1), các phương thức (2) và các tham số (1) trước khi bạn tiếp tục.

Trong đầu ra kết quả, bạn sẽ nhận thấy một chút đánh dấu HTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
	<title>Browse - Central Criminal Court</title>
	<meta http-equiv="content-type" content=

Nội dung của bản thân thử nghiệm ở xa hơn nhiều trên trang. Những gì chúng ta thấy ở đây là mã HTML ở đầu tài liệu. Đây không hoàn toàn là những gì chúng ta cần cho nghiên cứu lịch sử, nhưng đừng lo lắng; Bạn sẽ sớm học cách xóa đánh dấu dư thừa đó và nhận được nội dung bạn đang theo đuổi.

Lưu một bản sao cục bộ của một trang web

Đưa ra những gì bạn đã biết về việc viết vào các tệp, thật dễ dàng để sửa đổi chương trình trên để nó ghi nội dung của chuỗi webcontent vào một tệp cục bộ trên máy tính của chúng tôi thay vì vào khung đầu ra lệnh của Cameron. Sao chép chương trình sau vào Chỉnh sửa Komodo, lưu nó dưới dạng

protocol://host:port/path?query
8 và thực hiện nó. Sử dụng lệnh
protocol://host:port/path?query
9 trong Firefox, hãy mở tệp trên ổ cứng của bạn mà nó tạo (
http://oldbaileyonline.org
0) để xác nhận rằng bản sao đã lưu của bạn giống như bản sao trực tuyến.

saveFullHtmlPage('https://www.google.com', 'google')
0

Vì vậy, nếu bạn có thể lưu một tệp duy nhất một cách dễ dàng, bạn có thể viết một chương trình để tải xuống một loạt các tệp không? Ví dụ, bạn có thể bước qua ID dùng thử, và tạo ra các bản sao của riêng bạn của một nhóm chúng không? Chuẩn rồi. Bạn có thể tìm hiểu cách thực hiện điều đó trong việc tải xuống nhiều tệp bằng các chuỗi truy vấn mà chúng tôi khuyên bạn nên hoàn thành các bài học giới thiệu trong loạt bài này.

Bài đọc đề xuất

  • Lutz, Mark. “Ch. 4: Giới thiệu các loại đối tượng Python, học Python (O hèReilly, 1999).

Đồng bộ hóa mã

Để làm theo cùng với các bài học trong tương lai, điều quan trọng là bạn có các tệp và chương trình phù hợp trong thư mục lập trình của bạn. Khi kết thúc mỗi bài học, bạn có thể tải xuống tệp ZIP lập trình-Historian Hitming-Historian để đảm bảo bạn có mã chính xác.

  • Lập trình-Historian-1 (ZIP)

Làm cách nào để lưu một trang web dưới dạng HTML trong Python?

Để lưu một trang, trước tiên chúng tôi sẽ có được nguồn trang phía sau trang web với sự trợ giúp của phương thức trang_source. Chúng tôi sẽ mở một tệp với một mã hóa cụ thể với các codec. Phương pháp mở. Tệp phải được mở trong chế độ ghi được biểu thị bằng W và loại mã hóa là UTF 8.obtain the page source behind the webpage with the help of the page_source method. We shall open a file with a particular encoding with the codecs. open method. The file has to be opened in the write mode represented by w and encoding type as utf−8.

Có thể đầu ra Python cho HTML?

Ngôn ngữ Python có những ứng dụng tuyệt vời ngày nay trong hầu hết mọi lĩnh vực, nó có thể được sử dụng cùng với các công nghệ khác để làm cho cuộc sống của chúng ta dễ dàng hơn.Một cách sử dụng Python như vậy là nhận được đầu ra dữ liệu trong tệp HTML.Chúng tôi có thể lưu bất kỳ số lượng dữ liệu đầu vào của chúng tôi vào tệp HTML trong Python bằng các ví dụ sau theo hai cách.One such use of python is getting the data output in an HTML file. We can save any amount of our input data into an HTML file in python using the following examples in two ways.

Bạn có thể tạo một trang web với Python và HTML không?

Nếu bạn quan tâm đến việc phát triển web với Python, thì việc biết HTML và CSS sẽ giúp bạn hiểu các khung web như Django và Flask tốt hơn.Nhưng ngay cả khi bạn mới bắt đầu với Python, HTML và CSS cũng có thể cho phép bạn tạo các trang web nhỏ để gây ấn tượng với bạn bè.HTML and CSS can enable you to create small websites to impress your friends.

Làm cách nào để lưu văn bản dưới dạng HTML trong Python?

Python Tải xuống HTML dưới dạng văn bản..
Nhập yêu cầu ..
url = "https://stackoverflow.com/questions/24297257/save-html-of-some-website-in-a-txt-file-with-python".
r = yêu cầu.Nhận (URL).
với mở ('file.txt', 'w') dưới dạng tệp:.
tập tin.Viết (r. Văn bản).