写一段python代码目标是获取httpsdataeastmoneycombbsj202303yjbbhtml 网页表格中的数据该网页使用了ajax技术的下一页按钮翻页要求能遍历所有页面直到不再有下一页按钮。
由于本题需要爬取动态页面的数据,我们需要使用Selenium库,以下是完整代码:
from selenium import webdriver
import time
# 设置浏览器
options = webdriver.ChromeOptions()
options.add_argument('--headless') # 无界面模式
options.add_argument('--disable-gpu') # 禁用GPU加速
driver = webdriver.Chrome(options=options)
# 打开网页
url = 'https://data.eastmoney.com/bbsj/202303/yjbb.html'
driver.get(url)
# 获取表格头
table_head = driver.find_element_by_xpath('//table[@id="dt_1"]/thead/tr')
head_list = table_head.text.split('\n')
print(head_list)
# 获取表格数据
table_data = []
while True:
# 获取数据行
table_rows = driver.find_elements_by_xpath('//table[@id="dt_1"]/tbody/tr')
for row in table_rows:
row_list = row.text.split('\n')
table_data.append(row_list)
print(row_list)
# 判断是否有下一页按钮
next_button = driver.find_elements_by_xpath('//div[@class="paginate_button next"]')
if len(next_button) == 0:
break
# 点击下一页按钮
next_button[0].click()
time.sleep(1)
# 关闭浏览器
driver.quit()
我们首先设置浏览器选项,选择无界面模式和禁用GPU加速,然后打开网页。接着,我们先获取表格头,然后进入一个循环,不断获取表格数据,并判断是否有下一页按钮。如果有,就点击下一页按钮,否则就退出循环。最后,我们关闭浏览器
原文地址: http://www.cveoy.top/t/topic/crUA 著作权归作者所有。请勿转载和采集!