Tôi viết một kịch bản để nắm bắt ngày độc lập của một vài quốc gia trên Wikipedia.Python & Beautiful Soup: Chỉ tìm kiếm trong một lớp nhất định
Ví dụ, với Kazakhstan:
URL_QS = 'https://en.wikipedia.org/wiki/Kazakhstan'
r = requests.get(URL_QS)
soup = BeautifulSoup(r.text, 'lxml')
# Only keep the infobox (top right)
infobox = soup.find("table", class_="infobox geography vcard")
if infobox:
formation = infobox.find_next(text = re.compile("Formation"))
if formation:
independence = formation.find_next(text = re.compile("independence"))
if independence:
independ_date = independence.find_next("td").text
else:
independence = formation.find_next(text = re.compile("Independence"))
if independence:
independ_date = independence.find_next("td").text
print(independ_date)
Và tôi có kết quả như sau:
Almaty
sản lượng này không được chuyển ngữ trong hộp thông tin nhưng sau đó, trong văn bản. Đó là vì "geometry.find_next (text = re.compile (" độc lập "))" tìm thấy thứ gì đó bên ngoài hộp thông tin nhưng tôi không hiểu tại sao nghiên cứu không nên được thực hiện chỉ trong hộp thông tin? Làm cách nào tôi có thể tìm kiếm trong trường này?
Cảm ơn bạn trước sự giúp đỡ của bạn!
hình = infobox.find_next (text = re.compile ("hình")) Bạn có thể xác nhận lại dòng này, bởi vì nó được trả lại một giá trị "hình thành" cho sự hình thành biến nếu bạn in nó . – kmcodes