Làm thế nào tôi có thể trích xuất bất cứ điều gì sau khi chém cuối cùng trong một url trong Python? Ví dụ, các URL này sẽ trả về như sau:
URL: //www.test.com/TEST1
returns: TEST1
URL: //www.test.com/page/TEST2
returns: TEST2
URL: //www.test.com/page/page/12345
returns: 12345
Tôi đã thử Urlparse, nhưng điều đó mang lại cho tôi tên tệp đường dẫn đầy đủ, chẳng hạn như
url.rsplit['/', 1][-1]
0.
Remi guan
20,5K17 Huy hiệu vàng62 Huy hiệu bạc83 Huy hiệu đồng17 gold badges62 silver badges83 bronze badges
Hỏi ngày 31 tháng 8 năm 2011 lúc 7:23Aug 31, 2011 at 7:23
5
Bạn không cần những thứ lạ mắt, chỉ cần xem các phương thức chuỗi trong thư viện tiêu chuẩn và bạn có thể dễ dàng phân chia URL của mình giữa phần 'tên tệp' và phần còn lại:
url.rsplit['/', 1]
Vì vậy, bạn có thể nhận được phần bạn quan tâm đơn giản với:
url.rsplit['/', 1][-1]
Remi guan
20,5K17 Huy hiệu vàng62 Huy hiệu bạc83 Huy hiệu đồng17 gold badges62 silver badges83 bronze badges
Hỏi ngày 31 tháng 8 năm 2011 lúc 7:23Aug 31, 2011 at 7:28
Luke404Luke404Luke404
Bạn không cần những thứ lạ mắt, chỉ cần xem các phương thức chuỗi trong thư viện tiêu chuẩn và bạn có thể dễ dàng phân chia URL của mình giữa phần 'tên tệp' và phần còn lại:3 gold badges24 silver badges31 bronze badges
6
Vì vậy, bạn có thể nhận được phần bạn quan tâm đơn giản với:
URL.split["/"][-1]
Đã trả lời ngày 31 tháng 8 năm 2011 lúc 7:28Aug 31, 2011 at 7:31
9,9023 Huy hiệu vàng24 Huy hiệu bạc31 Huy hiệu ĐồngKimvais
Một [idio [ma] tic] theo cách:16 gold badges107 silver badges140 bronze badges
2
Đã trả lời ngày 31 tháng 8 năm 2011 lúc 7:31
In [1]: '//www.test.com/page/TEST2'.rsplit['/', 1][1]
Out[1]: 'TEST2'
Hỏi ngày 31 tháng 8 năm 2011 lúc 7:23Aug 31, 2011 at 7:28
0
Bạn không cần những thứ lạ mắt, chỉ cần xem các phương thức chuỗi trong thư viện tiêu chuẩn và bạn có thể dễ dàng phân chia URL của mình giữa phần 'tên tệp' và phần còn lại:
head, tail = os.path.split[url]
Vì vậy, bạn có thể nhận được phần bạn quan tâm đơn giản với:
Đã trả lời ngày 31 tháng 8 năm 2011 lúc 7:28Sep 20, 2013 at 13:53
9,9023 Huy hiệu vàng24 Huy hiệu bạc31 Huy hiệu Đồngneowinston
Một [idio [ma] tic] theo cách:10 gold badges51 silver badges83 bronze badges
1
Đã trả lời ngày 31 tháng 8 năm 2011 lúc 7:31
import urllib.parse
urls = [
'//www.test.com/TEST1',
'//www.test.com/page/TEST2',
'//www.test.com/page/page/12345',
'//www.test.com/page/page/12345?abc=123'
]
for i in urls:
url_parts = urllib.parse.urlparse[i]
path_parts = url_parts[2].rpartition['/']
print['URL: {}\nreturns: {}\n'.format[i, path_parts[2]]]
Output:
URL: //www.test.com/TEST1
returns: TEST1
URL: //www.test.com/page/TEST2
returns: TEST2
URL: //www.test.com/page/page/12345
returns: 12345
URL: //www.test.com/page/page/12345?abc=123
returns: 12345
KimvaiskimvaisApr 4, 2013 at 5:51
37.3K16 Huy hiệu vàng107 Huy hiệu bạc140 Huy hiệu đồngJacob Wan
1 nên tùy thuộc vào nhiệm vụ:21 silver badges19 bronze badgesurl.rsplit['/', 1][-1]
2
os.path.basename[os.path.normpath['/folderA/folderB/folderC/folderD/']]
>>> folderD
Bạn có thể làm như thế này:Jan 15, 2019 at 5:01
Nơi đuôi sẽ là tên tệp của bạn.Rochan
Đã trả lời ngày 20 tháng 9 năm 2013 lúc 13:531 gold badge13 silver badges15 bronze badges
2
Neowinstonneowinston
url.rsplit['/', 1]
07.44610 Huy hiệu vàng51 Huy hiệu bạc83 Huy hiệu đồngApr 12, 2018 at 14:32
Urlparse là tốt để sử dụng nếu bạn muốn [giả sử, để loại bỏ bất kỳ tham số chuỗi truy vấn nào].sandoronodi
Đã trả lời ngày 4 tháng 4 năm 2013 lúc 5:512 silver badges11 bronze badges
1
Jacob Wanjacob Wan
url.rsplit['/', 1]
12.36321 Huy hiệu bạc19 Huy hiệu đồng
url.rsplit['/', 1]
2Đã trả lời ngày 15 tháng 1 năm 2019 lúc 5:01
RochanrochanSep 19, 2011 at 9:22
1.2941 Huy hiệu vàng13 Huy hiệu bạc15 Huy hiệu đồngtzot
Đây là một cách nói chung, Regex để làm điều này:29 gold badges137 silver badges201 bronze badges
2
Đã trả lời ngày 12 tháng 4 năm 2018 lúc 14:32
url.rsplit['/', 1]
3Sandoronodisandoronodi: if your url ends with a
url.rsplit['/', 1][-1]
4 character, the above will return url.rsplit['/', 1][-1]
6 [i.e. the empty string]. If you want to handle that case differently, you need to strip the last trailing url.rsplit['/', 1][-1]
4 character before you split the path:url.rsplit['/', 1]
43162 huy hiệu bạc11 huy hiệu đồngNov 18, 2020 at 22:01
Đầu tiên trích xuất phần tử đường dẫn từ URL:
url.rsplit['/', 1]
5yields:
url.rsplit['/', 1]
6Và sau đó bạn có thể trích xuất phân đoạn cuối cùng với các hàm chuỗi:Dec 22, 2021 at 9:32
url.rsplit['/', 1]
7Hỏi ngày 31 tháng 8 năm 2011 lúc 7:23Aug 31, 2011 at 7:28
Bạn không cần những thứ lạ mắt, chỉ cần xem các phương thức chuỗi trong thư viện tiêu chuẩn và bạn có thể dễ dàng phân chia URL của mình giữa phần 'tên tệp' và phần còn lại:fardjad
Vì vậy, bạn có thể nhận được phần bạn quan tâm đơn giản với:6 gold badges50 silver badges67 bronze badges
0
Đã trả lời ngày 31 tháng 8 năm 2011 lúc 7:28
9,9023 Huy hiệu vàng24 Huy hiệu bạc31 Huy hiệu ĐồngMay 19, 2017 at 9:16
Một [idio [ma] tic] theo cách:Atul Yadav
Đã trả lời ngày 31 tháng 8 năm 2011 lúc 7:311 gold badge13 silver badges15 bronze badges
Kimvaiskimvais
url.rsplit['/', 1]
837.3K16 Huy hiệu vàng107 Huy hiệu bạc140 Huy hiệu đồngJun 10, 2021 at 8:58
url.rsplit['/', 1][-1]
1 nên tùy thuộc vào nhiệm vụ:Jaimin PatelBạn có thể làm như thế này:3 gold badges31 silver badges35 bronze badges
url.rsplit['/', 1]
9Nơi đuôi sẽ là tên tệp của bạn.
Đã trả lời ngày 20 tháng 9 năm 2013 lúc 13:53
Neowinstonneowinston2 gold badges24 silver badges42 bronze badges
7.44610 Huy hiệu vàng51 Huy hiệu bạc83 Huy hiệu đồngFeb 18, 2013 at 21:42
live_alonelive_alonelive_alone
Urlparse là tốt để sử dụng nếu bạn muốn [giả sử, để loại bỏ bất kỳ tham số chuỗi truy vấn nào].1 silver badge11 bronze badges
1