我正在嘗試從以下位置獲取公司名稱串列:
先感謝您。
我嘗試了 SELECTOR XPATH 和 TAG_NAME('a') Print('company-name')

uj5u.com熱心網友回復:
import requests
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:106.0) Gecko/20100101 Firefox/106.0',
'ctaapi-version': '1.1'
}
def main(url):
with requests.Session() as req:
req.headers.update(headers)
params = {
"alpha": "",
"country": "",
"exhibitorType": "",
"pageNo": "1",
"pageSize": "30",
"searchTerm": "",
"sortBy": "alpha",
"state": "",
"venue": ""
}
r = req.get(
'https://www.ces.tech/api/Exhibitors', params=params)
print(r.json())
main('https://www.ces.tech/Exhibits/Exhibitor-Directory.aspx')
uj5u.com熱心網友回復:
假設您突出顯示的是您想要的,我認為 XPath 將類似于:
names = driver.find_elements(By.XPATH, '//h3[@]//a')
這會將所有匹配的元素保存在名稱變數中。然后,如果有多個這些并且您正在嘗試獲取文本,那么您可以像這樣回圈它們:
for i in names:
print(i.text)
uj5u.com熱心網友回復:
這是將所有公司名稱放入串列的代碼:
from selenium import webdriver
import time
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.implicitly_wait(10)
driver.get('https://www.ces.tech/Exhibits/Exhibitor-Directory.aspx')
last_letter = 'A'
while last_letter < 'Z':
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
time.sleep(2)
last_letter = driver.find_elements(By.CLASS_NAME, 'followMeBar__content')[-1].text
company_names = driver.find_elements(By.CLASS_NAME, 'company-name')
names_list = []
for name in company_names:
if name.text:
names_list.append(name.text)
print(names_list)
print('Total count of name si', len(names_list))
driver.quit()
該頁面使用lazy load并在每次滾動后加載名稱的下一部分,因此我創建了一個回圈,該回圈滾動直到從“z”開始的公司名稱出現在頁面上。
代碼需要改進。但這足以了解如何使用此頁面。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/529702.html
上一篇:從懸停元素獲取定位器
