今天會將我們昨天新學的爬取片運用到我們現在的程式上
link_list = [] #存放各個飯店鏈結
all_titles = soup.find_all("div",attrs={"data-testid":"title"})取得所有飯店的名稱
for i in range(5):
...
link = hotels[i].find(attrs={"data-testid" : "title-link"})
link_list.append(link.get('href'))
driver.set_window_size(10000,30000)
link_count = 0 #用來計數link_list
for title in all_titles:
url = link_list[link_count]
driver.get(url)
close = driver.find_element(By.CSS_SELECTOR, 'a[class="bh-photo-grid-item bh-photo-grid-side-photo active-image "]')
close.click()
source = driver.page_source
soup = BeautifulSoup(source, "lxml")
body = soup.find("body")
imgs = body.find_all("img", {"class": "bh-photo-modal-grid-image"}, limit=10)
image_links = [img.get("src") for img in imgs] # 取得圖片來源連結
image_tags = [img.get("alt") for img in imgs] # 取得圖片名稱
for index, link in enumerate(image_links):
if not os.path.exists("images"):
os.mkdir("images") # 建立資料夾
if not os.path.exists("images\\"+title.text):
os.mkdir("images\\"+title.text) #建立每個不同飯店的圖片
img = requests.get(link) # 下載圖片
with open("images\\" + title.text +'\\' + image_tags[index] + str(index) + ".jpg", "wb") as file: # 開啟資料夾及命名圖片檔
file.write(img.content) # 寫入圖片的二進位碼
link_count+=1 #啟用下一個飯店鏈結
好拉那我們這邊就完成了我們主程式的又一個功能了,終於我們要在最後十天開始介紹我們要使用的booking bot啦~~