selenium - 如何使用 selenium _scrape_ 来自该网站链接的所有数据并将提取的城市、位置和联系电话保存为 csv 数据框对象?
问题描述
抓取数据 的网站网址http://jawdhabib.co.in/hairandbeautysalons-sl/
代码:
lst = driver.find_element_by_css_selector(".post-17954.page.type-page.status-publish.hentry").text
for i in lst:
driver.implicitly_wait(2)
city = driver.find_element_by_css_selector("tr").text
salon_address = driver.find_element_by_css_selector("tr").text
Contact_number = driver.find_element_by_css_selector("tr").text
print(lst)
解决方案
这是您问题的第一部分。从一开始,您需要等待所有元素加载到屏幕上。抓取超出为该位置保留的前 2 个 trs 的所有表 trs。使用 ./ 从 tr xpath 到他们的孩子,并尊重地使用属性('textContent')抓取 td[1-3] 文本。
wait = WebDriverWait(driver, 60)
driver.get("http://jawedhabib.co.in/hairandbeautysalons-sl/")
#driver.maximize_window()
tableValues=wait.until(EC.presence_of_all_elements_located((By.XPATH,"//tbody//tr[position()>2]")))
city=[]
address=[]
contactno=[]
for tr in tableValues:
#print(tr.get_attribute('textContent'))
city.append(tr.find_element_by_xpath("./td[1]").get_attribute('textContent'))
address.append(tr.find_element_by_xpath("./td[2]").get_attribute('textContent'))
contactno.append(tr.find_element_by_xpath("./td[3]").get_attribute('textContent'))
进口
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
推荐阅读
- mysql - 当我在邮递员中输入 IP 地址时,我从我的 api 中获取邮递员中的数据?
- python - 尝试从数据帧中返回记录,唱参考数据帧
- gatsby - 动态同步内容内容
- identityserver4 - 在没有身份服务器的情况下保护 Web API
- testng - How to list get a list of all TestNG test methods
- http - 从用 C/C++ 编写并在本地运行的应用程序通过 HTTP 调用 IBM Watson API?
- gradle - 发布带有 id 嵌入平台信息的原生工件
- javascript - 当没有更多值发送到特定标记时,标记将被删除
- eclipse - 将 Eclipse 实用程序项目部署为 ear lib 文件夹中的 jar 文件
- ms-access - 访问:对来自多个和变量列的值求和