Đối với ví dụ chung về điều này có những thế nào tos:
Ví dụ cụ thể này chỉ nhập nó
tmp = Import["http://en.wikipedia.org/wiki/Unemployment_by_country", "Data"]
sạch nó lên là khá thẳng về phía trước với nhập khẩu này.Bảng này là 3 cột để trích xuất nó ra khỏi phần còn lại của các công cụ:
tmp1 = Cases[tmp, {_, _?NumberQ, _}, \[Infinity]]
Bạn có lẽ sẽ muốn loại bỏ các tài liệu tham khảo khung vuông (??):
tmp1[[All, 3]] = Flatten[If[StringQ[#],
StringCases[#, x__ ~~ Whitespace ~~ "[" ~~ __ :> x], #] & /@ tmp1[[All, 3]]]
Grid[tmp1, Frame -> All]
Cũng lưu ý bạn có thể thêm tiêu đề trở lại nếu bạn muốn nó trong bảng của bạn, mà bạn có thể làm
Grid[Join[{{"Country/Region", "Unemployment rate (%)",
"Source/date of information"}}, tmp1], Frame -> All]
chủ nghĩa thuần túy có thể phản đối đến bước cuối cùng nhưng khi bạn đang cào dữ liệu nói chung bạn chỉ muốn có được công việc thực hiện và mỗi trang web là một trường hợp của khách hàng tiềm năng. Vì vậy, một số kiểm tra thủ công và tính linh hoạt giúp bạn có được kết quả tổng thể nhanh nhất.
Sửa
nếu bạn muốn cờ bạn cũng có thể nhận được chúng từ CountryData
. Một số làm sạch thêm là cần thiết nếu không rất nhiều lỗi sẽ xảy ra. Việc dọn dẹp liên quan đến việc loại bỏ tham chiếu đến "quốc gia có chủ quyền" trong ngoặc đơn. ví dụ. "Guam (Hoa Kỳ)" -> "Gaum".
tmp2 = Flatten[
If[StringMatchQ[#, __ ~~ "(" ~~ __],
StringCases[#,
z__ ~~ Shortest["(" ~~ __ ~~ ")" ~~ EndOfString] :>
[email protected]], StringTrim[#]] & /@ tmp1[[All, 1]]]
Điều này vẫn sẽ tạo ra một số đầu ra là CountryData
không nhận ra.
flags = CountryData[#, "Flag"] & /@ tmp2;
Cases[flags, _CountryData]
6 lỡ ra khỏi 190. Di chuyển những bỏ lỡ từ đầu ra:
flags = If[Head[#] === CountryData, {""}, {#}] & /@ flags; (*much faster than rule replacement*)
tmp2 = Join[flags, tmp1, 2];
Grid[tmp2, Frame -> All]
Lưu ý rằng điều này mất một thời gian để render.
Bạn rõ ràng là có thể tạo kiểu các Grid
như mong muốn sử dụng Grid
lựa chọn và cũng thay đổi kích thước hình ảnh nếu cần thiết.
IMO, nếu bạn đang sử dụng phiên bản 8, JSON là cách để thực hiện. Có rất nhiều API trong tự nhiên (thường là trượt XML hoặc JSON theo cách của bạn). Tôi sẽ không khuyên bạn nên giết thời gian trích xuất dữ liệu thất nghiệp từ một Wiki. Tìm nguồn chính cho những gì bạn quan tâm và có thể sẽ có API. Nếu bạn chỉ muốn rip một cái gì đó một cách nhanh chóng, bạn cũng có thể thử các tế bào liên kết trong Excel --- sau đó bạn có thể nhập khẩu vào MMA. (Bỏ qua tất cả điều này nếu bạn chỉ muốn vui vẻ và học hỏi. Trong trường hợp đó, phân tích đi !!): D – telefunkenvf14