Làm cách nào để tải xuống tệp CSV từ URL Python?

Trong nhiều dự án khoa học dữ liệu, bạn có thể cần tải xuống dữ liệu từ xa, chẳng hạn như hình ảnh, tệp CSV hoặc dữ liệu nén. Python làm cho việc tải xuống các tệp trong mã của bạn trở nên khá đơn giản, cho phép bạn tự động hóa các quy trình mà bạn có thể phải thực hiện thủ công hoặc thông qua tập lệnh Bash. Đây là cách nó được thực hiện

Đang tải xuống một tệp

Để tải xuống một tệp bằng Python, hãy nhập gói request từ urllib và xác định URL bạn muốn tải xuống. Sau đó, chuyển url cho hàm

('image.jpg', )
0 cùng với tên bạn muốn gán cho tệp đã tải xuống

import urllib.request

url = 'https://practicaldatascience.co.uk/assets/images/posts/happy.jpg'
urllib.request.urlretrieve(url, 'image.jpg')

('image.jpg', )

Tải xuống tệp và giữ nguyên tên tệp

Nếu bạn muốn giữ nguyên tên tệp của tệp bạn đang tải xuống, thay vì đặt tên tệp đó một cách rõ ràng trong mã của mình, trước tiên bạn có thể sử dụng

('image.jpg', )
1 để yêu cầu tệp, sau đó sử dụng
('image.jpg', )
2 để lấy tên tệp từ đối tượng url trong phản hồi được trả về. Cuối cùng, bạn có thể chuyển tên tệp cho hàm
('image.jpg', )
0 và tệp của bạn sẽ được tải xuống bằng tên tệp ban đầu của nó

import urllib.request
from os.path import basename

url = 'https://practicaldatascience.co.uk/assets/images/posts/happy.jpg'
response = urllib.request.urlopen(url)

filename = basename(response.url)

urllib.request.urlretrieve(url, filename)

('happy.jpg', )

Đang tải xuống nhiều tệp

Nếu bạn có nhiều tệp để tải xuống, bạn chỉ cần sửa đổi mã ở trên và tạo vòng lặp for để yêu cầu và tải xuống từng tệp riêng lẻ. Trước tiên, hãy xác định danh sách các URL bạn muốn tải xuống, sau đó tạo vòng lặp for để lặp qua các URL. Sau đó, yêu cầu tệp, lấy tên tệp và chuyển URL và tên tệp tới

('image.jpg', )
0

Python cung cấp khả năng đọc dữ liệu CSV trực tiếp từ web. Bài đăng này sẽ chỉ ra cách tải CSV theo ba cách-. sử dụng các gói gấu trúc, urllib và yêu cầu trong python

Phương pháp A. Đang tải CSV từ URL bằng Pandas

Hàm read_csv() có thể đọc tệp CSV trực tiếp từ nguồn trực tuyến. Trong ví dụ sau, hàm tải dữ liệu CSV từ GitHub và lưu trữ dữ liệu đó trong DataFrame df

1

2

3

4

nhập gấu trúc dưới dạng pd

 

url = "https. // thô. githubusercontent. com/datasciencedojo/datasets/master/titanic. csv"

df = pd. read_csv(url)

Đầu ra (mô tả)

A DataFrame of 891 rows and 12 columns.

Khi đọc dữ liệu từ GitHub, đảm bảo bạn đọc từ URL thô. Ví dụ: ở trên, nếu bạn thử tải dữ liệu trực tiếp từ https. //github. com/datasciencedojo/datasets/blob/master/titanic. csv, quá trình tải xuống sẽ không thành công. Khi bạn truy cập vào một URL như vậy, hãy mở nội dung thô bằng nút "Thô" ở đầu Khung dữ liệu, sau đó bạn sẽ có URL chính xác như URL chúng tôi đã sử dụng trong ví dụ trên

CSV là viết tắt của Giá trị được phân tách bằng dấu phẩy, nhưng trong một số trường hợp, giá trị của tệp CSV không được phân tách bằng dấu phẩy. Trong một số trường hợp, các ký tự khác như “;”, tab (“\t”), v.v. Nếu bạn cố tải một CSV không được phân tách bằng dấu phẩy, hãy chuyển đối số “sep” cho hàm read_csv(). Ví dụ,

1

2

3

4

nhập gấu trúc dưới dạng pd

 

# csv không được phân cách bằng dấu phẩy

df1 = pd. read_csv("https. // người. viễn thông-paristech. fr/eagan/class/igr204/data/cereal. csv")

đầu ra

ParserError: Error tokenizing data.

1

2

3

4

nhập gấu trúc dưới dạng pd

 

#dữ liệu được phân tách bằng dấu hai chấm

df1 = pd. read_csv("https. // người. viễn thông-paristech. fr/eagan/class/igr204/data/cereal. csv", sep=";")

Đầu ra (mô tả)

A data table of 78 rows and 16 columns

Phương pháp B. Đọc CSV từ URL bằng urllib

Mô-đun urllib của Python được sử dụng để tương tác và nhận URL từ các giao thức khác nhau. Để kết nối với một URL và đọc nội dung của nó, hãy sử dụng urllib. hàm urlopen()

Sau khi nhận được phản hồi, chúng tôi có thể sử dụng csv. hàm reader() để phân tích nội dung nhận được. Trình đọc cho phép chúng tôi lặp qua từng hàng CSV

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

# Tải gói

từ urllib. yêu cầu nhập urlopen

nhập csv

nhập codec

 

# địa chỉ

url = "https. // thô. githubusercontent. com/datasciencedojo/datasets/master/titanic. csv"

# lấy nguồn bằng urlopen

phản hồi = urlopen(url)

# phân tích cú pháp dữ liệu đã tìm nạp bằng csv. đọc

# codec cho phép chúng tôi giải mã phản hồi byte thành một chuỗi

tệp csv = csv. trình đọc(codec. iterdecode(phản hồi, "))

 

# Vòng qua các hàng

# enumerate() cho phép chúng ta lập chỉ mục cho iterable

cho chỉ mục, hàng trong enumerate(csvfile):

    in(chỉ mục, row)  # do something with row - note: the first row is  the header

Đầu ra (mô tả)

139 rows of data

Lưu ý rằng hàng đầu tiên là tiêu đề trong hầu hết các trường hợp

Phương pháp C. Sử dụng yêu cầu và csv để tải CSV từ Nguồn trực tuyến

Giống như urllib, mô-đun yêu cầu có thể tìm nạp dữ liệu CSV từ một URL. Nó là một thư viện HTTP đơn giản với khả năng xử lý lỗi nâng cao

Hàm get() trong mô-đun này có thể truy xuất phản hồi từ một liên kết tới nội dung được lặp lại bằng hàm iter_lines()

Dữ liệu đã hoàn thành sau đó được phân tích cú pháp bằng csv. reader(), cho phép chúng ta duyệt qua các hàng. Đây là một ví dụ

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

nhập yêu cầu

nhập csv

nhập codec

 

# url - đó là một url dài, vì vậy chúng tôi ngắt nó bằng cách sử dụng \ để xem tốt hơn bằng cách sử dụng

url = "https. //www. số liệu thống kê. chính phủ. nz/assets/Uploads/Annual-enterprise-survey/\

Khảo-sát-doanh-nghiệp-2021-năm-tài-chính-tạm-thời/Tải-dữ-liệu/\

doanh-nghiệp-khảo-sát-năm 2021-tài-chính-năm-tạm-csv. csv"

# tìm nạp nguồn trang bằng cách sử dụng các yêu cầu. được()

res = yêu cầu. lấy(url)

# tạo iterator cho tất cả các dòng

lines_iterator = res. iter_lines()

# tạo đối tượng trình đọc CSV và mã hóa nội dung bằng mô-đun codec

dữ liệu = csv. trình đọc(codec. iterdecode(lines_iterator, mã hóa="utf-8"), delimiter=",")

 

# lặp qua các hàng trong danh sách "dữ liệu"

cho chỉ mục, hàng trong enumerate(data):

    in(chỉ mục, row)

   # lặp qua các hàng - lưu ý. hàng đầu tiên là tiêu đề

Đầu ra (mô tả)

41715 rows of data, including the header row

Phần kết luận

Bài viết này đề cập đến ba cách tải dữ liệu CSV từ một nguồn trực tuyến. Nếu bạn đang tải dữ liệu từ kho lưu trữ GitHub, hãy sử dụng URL cho nội dung thô. Đối với các nguồn khác, hãy đảm bảo bạn cũng nhận được liên kết chính xác. Một cách đơn giản để kiểm tra liên kết là nhấp vào liên kết đó. Nếu CSV bắt đầu tải xuống, di chuột qua URL, nhấp chuột phải và “Sao chép liên kết” sẽ giúp bạn có được URL chính xác

Làm cách nào để trích xuất dữ liệu từ trang web sang tệp CSV bằng Python?

Lưu Python Web Scraping vào CSV . Trong ví dụ này, chúng tôi sẽ loại bỏ So sánh các trình soạn thảo văn bản của Wikipedia. Thao tác này sẽ Lưu Hàng đầu tiên của bảng vào tệp CSV của chúng tôi. e Text-Soạn thảo-Dữ liệu. csv. move forward to Scrape the Data from the web and save it to our CSV File. In this example, we are going to scrape Wikipedia's Comparison of Text Editors. This will Save the First Row of the table into our CSV file i.e Text-Editor-Data. csv .

Làm cách nào để tải xuống dữ liệu từ trang web bằng Python?

Để trích xuất dữ liệu bằng cách sử dụng quét web với python, bạn cần làm theo các bước cơ bản sau. .
Tìm URL mà bạn muốn cạo
Kiểm tra trang
Tìm dữ liệu bạn muốn trích xuất
Viết mã
Chạy mã và giải nén dữ liệu
Lưu trữ dữ liệu ở định dạng cần thiết

Làm cách nào để đọc tập dữ liệu từ URL trong Python?

Để đọc tập dữ liệu, bạn chỉ cần cho gấu trúc ăn. read_csv() URL tập dữ liệu .

Làm cách nào để tải xuống CSV từ API Python?

Tải xuống CSV từ API REST bằng Yêu cầu Python .
Tạo một thư mục Dấu thời gian để tải xuống dữ liệu hiện tại
Tạo một thư mục latest_data với các liên kết tượng trưng đến các tệp dữ liệu mới nhất. .
Kết nối với URL và tải xuống dữ liệu