Я хотел потренироваться на примере реального мира (Airbnb), используя BeautifulSoup и Selenium в python.В частности, моя цель состоит в том, чтобы получить все списки (дома) ID в Лос-Анджелесе.Моя стратегия состоит в том, чтобы открыть Chrome и перейти на веб-сайт Airbnb, где я уже вручную искал дома в Лос-Анджелесе и начинал отсюда.До этого процесса я решил использовать селен.После этого я захотел проанализировать HTML-коды внутри исходных кодов, а затем найти идентификаторы списков, которые отображаются на текущей странице.Тогда в основном, хотел просто перебрать все страницы.Вот мои коды:
from urllib import urlopen
from bs4 import BeautifulSoup
from selenium import webdriver
option=webdriver.ChromeOptions()
option.add_argument("--incognito")
driver=webdriver.Chrome(executable_path="C:/Users/chromedriver.exe",chrome_options=option)
first_url="https://www.airbnb.com/s/Los-Angeles--CA--United-States/select_homes?refinement_paths%5B%5D=%2Fselect_homes&place_id=ChIJE9on3F3HwoAR9AhGJW_fL-I&children=0&guests=1&query=Los%20Angeles%2C%20CA%2C%20United%20States&click_referer=t%3ASEE_ALL%7Csid%3Afcf33cf1-61b8-41d5-bef1-fbc5d0570810%7Cst%3AHOME_GROUPING_SELECT_HOMES&superhost=false&title_type=SELECT_GROUPING&allow_override%5B%5D=&s_tag=tm-X8bVo"
n=3
for i in range(1,n+1):
if (i==1):
driver.get(first_url)
print first_url
#HTML parse using BS
html =driver.page_source
soup=BeautifulSoup(html,"html.parser")
listings=soup.findAll("div",{"class":"_f21qs6"})
#print out all the listing_ids within a current page
for i in range(len(listings)):
only_id= listings[i]['id']
print(only_id[8:])
after_first_url=first_url+"§ion_offset=%d" % i
print after_first_url
driver.get(after_first_url)
#HTML parse using BS
html =driver.page_source
soup=BeautifulSoup(html,"html.parser")
listings=soup.findAll("div",{"class":"_f21qs6"})
#print out all the listing_ids within a current page
for i in range(len(listings)):
only_id= listings[i]['id']
print(only_id[8:])
Если вы обнаружите какие-либо неэффективные коды, пожалуйста, поймите, так как я новичок.Я сделал эти коды, читая и просматривая несколько источников.Во всяком случае, я думаю, у меня есть правильные коды, но проблема в том, что каждый раз, когда я запускаю это, я получаю другой результат.Это означает, что он зацикливается на страницах, но иногда он дает результаты только для определенного количества страниц.Например, он зацикливает страницу page1, но не выдает никакого соответствующего вывода, зацикливает страницу page2 и дает результаты, но не для page3.Это настолько случайно, что дает результаты для некоторых страниц, но не для других.Кроме того, иногда он зацикливает страницы 1, 2, 3, ... в порядке, но иногда он зацикливает страницу 1, а затем переходит на последнюю страницу (17) и затем возвращается на страницу 2.Я предполагаю, что мои коды не идеальны, поскольку это дает нестабильные результатыУ кого-нибудь был подобный опыт или кто-то может мне помочь, в чем проблема?Благодарю.