# Crawl Dữ liệu ## Required Packages - webdriver của selenium - webdriver của Chrome hoặc các trình duyệt khác. - bs4 ## Một vài lệnh dùng khi đào tùy vào trang web - Mở trang web bằng chromedriver vừa download: ``` driver = webdriver.Chrome('Path-To-ChromeDriver') url = 'Link-Web-Crawling' driver.get(url) ``` - Click vào một mục nào đó trong web: ``` Vào inspect copy xpath phần muốn click vào driver.find_element_by_xpath("xpath") (Chú ý hiện tại đang ở url là nơi cần click) ``` - Sử dụng bs4 (BeautifulSoup) để load page_source, crawl phần mình muốn: ``` #load page_source: BeautifulSoup(driver.page_source) #kéo tới thẻ cần crawl, xem kiểu thẻ là gì, ví dụ là 'a' và class là gì : page_source.find_all('a', class_ = 'fl pro_gird_home left10 top10') ``` - Nếu nhiều sản phẩm, cần nhiều page (next page) thì tạo list links các sản phẩm bằng hàm: ``` Ví dụ: def GetURL(): page_source = BeautifulSoup(driver.page_source) profile = page_source.find_all('a', class_ = 'fl pro_grid_home left10 top10') for link in profile: links.append(link.get('href')) return links GetURL() ``` Ở đây href của thẻ chứa phần link tới sản phẩm thay vì click. - Muốn sang trang sau khi crawl sản phẩm tạo hàm : ``` def GetNext(): page_source = BeautifulSoup(driver.page_source) profile = page_source.find_all('a', class_ = 'Pageing fl') #các class sản phẩm sẽ giống nhau for link in profile: text = link.get_text()# lấy phần text trong thẻ 'a' và class_ phía trên #print(text) if ">" in text: #> nghĩa là qua page tiếp theo,< là về lại page cũ next_page = link.get('href') else: next_page = None drivers = webdriver.Chrome('C:\chromedriver\chromedriver') url = next_page drivers.get(url) page_source = BeautifulSoup(drivers.page_source) return page_source GetNext() ``` ## Hình click vào ">" ![](https://i.imgur.com/hUFP62f.png) ## Hình thẻ phần crawl ![](https://i.imgur.com/ilI03T9.png) - Clear data bằng Regex của python. Pipeline cơ bản dựa trên những công cụ trên: 1. Download webdriver. 2. Load page_source by webdriver. 3. Click vào mục sản phẩm bằng xpath. 4. Lập list các sản phẩm cần crawl. 5. Truy vập vào từng page bằng webdriver. 6. Tới phần cần crawl, tìm thẻ đó trong inspect. 7. Tạo vòng loop lặp qua hết sản phẩm. 8. Clear data mới crawl về.