Tôi cần lưu mã HTML của bất kỳ trang web nào trong tệp TXT, là một bài tập rất dễ dàng nhưng tôi nghi ngờ với điều này bởi vì một chức năng làm điều này:
import urllib.request
def get_html[url]:
f=open['htmlcode.txt','w']
page=urllib.request.urlopen[url]
pagetext=page.read[] ## Save the html and later save in the file
f.write[pagetext]
f.close[]
Nhưng điều này không hoạt động.
Jonrsharpe
Huy hiệu vàng 111K2525 gold badges217 silver badges403 bronze badges
hỏi ngày 19 tháng 6 năm 2014 lúc 1:05Jun 19, 2014 at 1:05
9
Cách dễ nhất sẽ là sử dụng URLRETRIELE:
import urllib
urllib.urlretrieve["//www.example.com/test.html", "test.txt"]
Đối với Python 3.x, mã như sau:
import urllib.request
urllib.request.urlretrieve["//www.example.com/test.html", "test.txt"]
Jeril
7.1353 Huy hiệu vàng51 Huy hiệu bạc67 Huy hiệu Đồng3 gold badges51 silver badges67 bronze badges
Đã trả lời ngày 19 tháng 6 năm 2014 lúc 1:18Jun 19, 2014 at 1:18
1
Tôi sử dụng
import urllib
urllib.urlretrieve["//www.example.com/test.html", "test.txt"]
3. import urllib
urllib.urlretrieve["//www.example.com/test.html", "test.txt"]
4 - Sau khi cài đặt thư viện import urllib
urllib.urlretrieve["//www.example.com/test.html", "test.txt"]
5 Bạn có thể lưu một trang web trong tệp TXT.import urllib
urllib.urlretrieve["//www.example.com/test.html", "test.txt"]
4 - after install import urllib
urllib.urlretrieve["//www.example.com/test.html", "test.txt"]
5 library you can save a webpage in txt file.import requests
url = "//stackoverflow.com/questions/24297257/save-html-of-some-website-in-a-txt-file-with-python"
r = requests.get[url]
with open['file.txt', 'w'] as file:
file.write[r.text]
Đã trả lời ngày 26 tháng 9 năm 2019 lúc 6:47Sep 26, 2019 at 6:47
SerhiiserhiiSerhii
1.0522 Huy hiệu vàng12 Huy hiệu bạc28 Huy hiệu đồng2 gold badges12 silver badges28 bronze badges
1
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
//oldbaileyonline.org
Bài đọc đề xuất
Đồng bộ hóa mã
//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.
//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à
//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
Đồ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.
//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à
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
import urllib
urllib.urlretrieve["//www.example.com/test.html", "test.txt"]
9. Khi bạn thực hiện chương trình, nó sẽ import urllib.request
urllib.request.urlretrieve["//www.example.com/test.html", "test.txt"]
0 Tệp dùng thử, import urllib.request
urllib.request.urlretrieve["//www.example.com/test.html", "test.txt"]
1 Nội dung của nó thành chuỗi python có tên WebContent và sau đó import urllib.request
urllib.request.urlretrieve["//www.example.com/test.html", "test.txt"]
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 import urllib.request
urllib.request.urlretrieve["//www.example.com/test.html", "test.txt"]
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à import urllib.request
urllib.request.urlretrieve["//www.example.com/test.html", "test.txt"]
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.]import urllib
urllib.urlretrieve["//www.example.com/test.html", "test.txt"]
0Nă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
import urllib.request
urllib.request.urlretrieve["//www.example.com/test.html", "test.txt"]
5, được lưu trữ trong mô -đun Python có tên import urllib.request
urllib.request.urlretrieve["//www.example.com/test.html", "test.txt"]
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
import urllib.request
urllib.request.urlretrieve["//www.example.com/test.html", "test.txt"]
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:
import urllib
urllib.urlretrieve["//www.example.com/test.html", "test.txt"]
1Nộ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
import urllib.request
urllib.request.urlretrieve["//www.example.com/test.html", "test.txt"]
8 và thực hiện nó. Sử dụng lệnh import urllib.request
urllib.request.urlretrieve["//www.example.com/test.html", "test.txt"]
9 trong Firefox, hãy mở tệp trên ổ cứng của bạn mà nó tạo [import requests
url = "//stackoverflow.com/questions/24297257/save-html-of-some-website-in-a-txt-file-with-python"
r = requests.get[url]
with open['file.txt', 'w'] as file:
file.write[r.text]
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.import urllib
urllib.urlretrieve["//www.example.com/test.html", "test.txt"]
2Vì 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]