Ví dụ 1- thông tin sách (tiếp tục)
Chúng ta bây giờ có http://books.toscrape.com/ page load trong cửa sổ trình duyệt hiện tại.
http://books.toscrape.com/ page chứa các liệt kê mặc định và nhiều hạng mục. Ở đây, chúng ta sẽ nghiêm ngặt, tìm
kiếm cho chính xác Childrens text trong các hạng mục có sẵn hay được liệt kê. Chúng ta sẽ thu thập URL của phần tử
với Childrens text và áp dụng click() vào nó. Trên phần tử được tìm thấy, click() mô phỏng một hành động người
dùng như chọn hay di chuyển qua nội dung và click nút chuột:
categoryURL = driver.find_element(By.LINK_TEXT,
“Childrens”).get_attribute(‘href’)
print(f”Category URL: {categoryURL}”)
Category URL:
http://books.toscrape.com/catalogue/category/books/childrens_11/
index.html
driver.find_element(By.LINK_TEXT, “Childrens”).click()
# load category page
Với page link lưu như categoryURL đang được load, chúng ta bây giờ sẽ thu thập các books có sẵn trên page. Suốt
quá trình chuẩn bị ví dụ này, đã có phân trang trong hạng mụ Childrens. Phương thức find_elements() tìm ra nhiều
phần tử cái khớp cái định vị cung cấp.
Mỗi liệt kê book được tìm thấy như <li> bên trong tag cha <ol> với row class. Lặp trên các phần tử list <li>
có sẵn, các giá trị khác nhau được thu thập, như articleLink, imageSrc, price, và nhiều hơn. Các dạng khác nhau của
cái định vị, như CSS_SELECTOR, TAG_NAME, và CLASS_NAME, được triển khai phụ thuộc vào tính phù hợp của chúng:
listings = driver.find_elements(By.CSS_SELECTOR,
“ol.row li”)# multiple element
for listing in listings:# Iterate the listing available in the page
article = listing.find_element(By.TAG_NAME,’article’)
image = article.find_element(By.CSS_SELECTOR,”a”)
articleLink = image.get_attribute(‘href’)
imageSrc = image.find_element(By.TAG_NAME,
‘img’).get_attribute(‘src’)
…..
price = article.find_element(By.CLASS_NAME,
“price_color”).text
