【发布时间】:2021-11-12 17:00:59
【问题描述】:
我使用以下代码块来抓取网站
driver = webdriver.Chrome(executable_path=r'C:/Users/USER/Downloads/chromedriver_win32/chromedriver.exe')
url = 'https://mamikos.com/cari/ugm/all/bulanan/0-15000000'
driver.get(url)
kamar = driver.find_elements_by_class_name('kost-rc__content')
for desc in kamar :
nama = desc.find_element_by_xpath('//*[@id="app"]/div/div[5]/div/div[1]/div/div/div[1]/div[1]/div[1]/div/div[2]/div/div[2]/div[2]/div/span[1]').text
kecamatan = desc.find_element_by_xpath('//*[@id="app"]/div/div[5]/div/div[1]/div/div/div[1]/div[1]/div[1]/div/div[2]/div/div[2]/div[2]/div/span[2]').text
harga = desc.find_element_by_xpath('//*[@id="app"]/div/div[5]/div/div[1]/div/div/div[1]/div[1]/div[1]/div/div[2]/div/div[2]/div[4]/div/div[2]/div/span[1]').text
print(nama, kecamatan, harga)
运行后,输出似乎只打印该页面的第一个结果。我试图将 xpath 更改为此
for desc in kamar :
nama = desc.find_element_by_xpath('.//*[@id="app"]/div/div[5]/div/div[1]/div/div/div[1]/div[1]/div[1]/div/div[2]/div/div[2]/div[2]/div/span[1]').text
kecamatan = desc.find_element_by_xpath('.//*[@id="app"]/div/div[5]/div/div[1]/div/div/div[1]/div[1]/div[1]/div/div[2]/div/div[2]/div[2]/div/span[2]').text
harga = desc.find_element_by_xpath('.//*[@id="app"]/div/div[5]/div/div[1]/div/div/div[1]/div[1]/div[1]/div/div[2]/div/div[2]/div[4]/div/div[2]/div/span[1]').text
print(nama, kecamatan, harga)
但它只会给出一个错误,请帮助。
旁注:谷歌浏览器版本 95.0.4638.69(官方构建)(64 位)和使用的驱动程序是 ChromeDriver 95.0.4638.69
【问题讨论】:
-
您需要阅读有关 xpath 以及如何更好地编写它的内容。
-
但它只给出一个错误 - 什么错误?
标签: python-3.x selenium-webdriver web-scraping xpath webdriverwait