python - 抓取列表问题
问题描述
我正在尝试在 python 中使用 selenium 抓取一些数据,我的代码运行正常,但我遇到了这个特定网页的问题,问题是我没有为每个业务设置一个固定值(例如:19CENT86 有 3 个证明,而 2AJM 有 1 个,而 2G2M 有 5 个)我知道我需要编写一个 XPath 来在一个列表中获取所有业务名称和证明。然后在迭代时,我必须识别并使用企业名称,直到企业名称发生变化,但我不知道如何实现这一点,我可能需要一些帮助,我刚刚开始使用 python
这是我的代码:
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.support.select import Select
import time
with open('scraping_5.csv', 'w') as file:
file.write("business_names, attestation, town_pc, region")
driver = webdriver.Chrome(ChromeDriverManager().install()) # initialise chrome driver
driver.get(
'https://www.cci.fr/agent-immobilier?company_name=agences%20immobili%C3%A8res%20&brand_name=&siren=&numero_carte=&code_region=84&city=&code_postal=&person_name=&state_recherche=1&name_region=AUVERGNE-RHONE-ALPES')
driver.maximize_window()
time.sleep(1)
agences_recherche = driver.find_element_by_id('edit-company-name')
# agences_recherche.send_keys('agences immobilières')
time.sleep(1)
region = driver.find_element_by_id('edit-code-region')
# region.send_heys('AUVERGNE-RHONE-ALPES')
time.sleep(1)
search = driver.find_element_by_xpath('//input[@value="Rechercher"]')
time.sleep(1)
business_names = driver.find_elements_by_xpath('//td[@class="titre_entreprise"]')
# driver.execute_script("arguments[0].click();", business_names)
attestation = driver.find_elements_by_xpath('//tr[@class="lien-fiche"]/td/a')
# driver.execute_script("arguments[0].click();", attestation)
town_pc = driver.find_elements_by_xpath('//*[@id="main-content"]/div/table/tbody/tr/td[2]')
# driver.execute_script("arguments[0].click();", town_pc)
region = driver.find_elements_by_xpath('//*[@id="main-content"]/div/table/tbody/tr/td[3]')
# driver.execute_script("arguments[0].click();", region)
with open('scraping_5.csv', 'w') as file:
for i in range(len(business_names)):
file.write(
business_names[i].text + ";" + attestation[i].text + ";" + town_pc[i].text + ";" + region[i].text + "\n")
解决方案
推荐阅读
- java - 新实例的功能接口调用
- vue.js - 将按钮绑定到vue js中for循环内的函数
- javascript - 如何在单击按钮上向此 JavaScript 或 HTML 添加 CSS?
- javascript - 在 javascript 中解析 csv 文件并根据两个特定行提取字典
- wordpress - 网站迁移后的字体问题 - Wordpress
- css - 在 iOS 上双击网站链接的问题
- ruby - 从外部方法跳过 Ruby 迭代器
- git - 如何在目标提交后仅 git push 提交?
- android - 从 ExternalMediaDirs 在 GridView 中显示图像
- php - 如何处理从数据表发送的ajax数据