Open a New Book--开启新的一页

作者宣布将开始在Csdn平台上记录自己的技术旅程和个人成长历程。这篇简短的文章标志着一个新阶段的开始。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Now start my new life, start my Csdn' life.

此刻起,开始我的Csdn生活。

from selenium import webdriver from selenium.webdriver.edge.service import Service as EdgeService from selenium.webdriver.edge.options import Options as EdgeOptions from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC import time def fetch_book_details(): # 设置Edge浏览器选项 edge_options = EdgeOptions() edge_options.add_argument("--start-maximized") # 初始化Edge浏览器 service = EdgeService() # 如果Edge驱动不是默认路径,可以指定完整路径 driver = webdriver.Edge(service=service, options=edge_options) try: target_url = "https://www.ptpress.com.cn/" driver.get(target_url) # 设置隐式等待,确保页面元素有足够时间加载 driver.implicitly_wait(10) # 确保页面完全加载 WebDriverWait(driver, 20).until( EC.visibility_of_element_located((By.XPATH, '//div[@id="newBook"]/div/div[2]/span')) ) # 获取当前分类 category_tab = driver.find_element(By.XPATH, '//div[@id="newBook"]/div/div[2]/span') print(f"当前分类: {category_tab.text}") category_tab.click() # 确保分类切换完成 WebDriverWait(driver, 20).until( EC.visibility_of_element_located((By.XPATH, '//*[@id="newBook"]/div/div[3]//a')) ) # 获取所有书籍链接 book_links = [link.get_attribute("href") for link in driver.find_elements(By.XPATH, '//*[@id="newBook"]/div/div[3]//a')] print(f"找到 {len(book_links)} 本书籍链接") book_data = [] for idx, link in enumerate(book_links, 1): try: # 访问书籍详情页 driver.get(link) # 确保书籍详情页完全加载 WebDriverWait(driver, 30).until( EC.visibility_of_element_located((By.CLASS_NAME, "book-name")) ) # 添加额外的短暂停顿,确保页面完全加载 time.sleep(2) # 获取书籍详细信息 book_info = { "书名": driver.find_element(By.CLASS_NAME, "book-name").text.strip(), "作者": driver.find_element(By.CLASS_NAME, "book-author").text.strip(), "价格": driver.find_element(By.CLASS_NAME, "price").text.strip() } print(f"已获取书籍 {idx} 信息: {book_info}") book_data.append(book_info) except Exception as e: print(f"处理书籍 {idx} 时出错: {e}") return book_data finally: driver.quit() if __name__ == "__main__": print("开始爬取人民邮电出版社新书信息…") books = fetch_book_details() if books: print("\n成功获取以下书籍信息:") for idx, book in enumerate(books, 1): print(f"\n书籍 {idx}:") for key, value in book.items(): print(f"{key}: {value}") else: print("未获取到任何书籍信息") 以上代码整体不乱改,请你帮我降一下查重率。但是还是维持代码原来本身可以运行。
06-08
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值