Python+Selenium:从百度学术精准爬取300条“数字经济”等相关文献信息并保存至CSV!
以下是为您编写的使用 Selenium 爬取文献信息的代码示例,并将结果保存到 CSV 文件中: ```python import time import csv from selenium import webdriver # 定义关键词 keywords = ["数字经济", "数字技术", "数字化"] # 初始化浏览器 driver = webdriver.Chrome() # 定义保存数据的函数 def save_to_csv(data): with open('literature_info.csv', 'a', newline='', encoding='utf-8') as file: writer = csv.writer(file) writer.writerow(data) # 爬取函数 def crawl_literature(keyword, num): url = f"http://xueshu.baidu.com/s?wd={keyword}" driver.get(url) time.sleep(2) # 等待页面加载 literature_list = driver.find_elements_by_xpath('//div[@class="sc_content"]') count = 0 for literature in literature_list: if count >= num: break # 提取文献名称 title_tag = literature.find_element_by_xpath('.//h3/a') title = title_tag.text # 提取作者 author_tag = literature.find_element_by_xpath('.//div[@class="sc_info"]/a') author = author_tag.text if author_tag else "未找到作者" # 提取 abstract_tag = literature.find_element_by_xpath('.//div[@class="c_abstract"]') abstract = abstract_tag.text if abstract_tag else "未找到" # 提取文献链接 link_tag = literature.find_element_by_xpath('.//h3/a') link = link_tag.get_attribute('href') # 提取来源期刊 source_tag = literature.find_element_by_xpath('.//div[@class="sc_info"]/span[1]') source = source_tag.text if source_tag else "未找到来源期刊" # 提取发表年份 year_tag = literature.find_element_by_xpath('.//div[@class="sc_info"]/span[2]') year = year_tag.text if year_tag else "未找到发表年份" # 提取引用量 citation_tag = literature.find_element_by_xpath('.//div[@class="sc_info"]/span[3]') citation = citation_tag.text if citation_tag else "未找到引用量" save_to_csv([title, author, abstract, link, source, year, citation]) count += 1 # 执行爬取 for keyword in keywords: if keyword == "数字经济": crawl_literature(keyword, 100) else: crawl_literature(keyword, 100) # 关闭浏览器 driver.quit() ``` 额外需要注意的逻辑点: 1. 网页的结构可能会发生变化,需要及时调整 Xpath 路径以确保准确提取信息。 2. 爬取过程中要注意适当的等待时间,避免频繁请求被网站封禁。 3. 处理可能出现的异常情况,如网络连接问题或页面元素未找到等。 ######[AI写代码神器 | 706点数解答 | 2024-12-10 03:57:02]
- Python:两种方法读取比赛得分数据,筛选85分以上同学(阿里通义 | 563点数解答 | 2024-12-12 18:07:35)247
- Python 读取 scores.csv 文件:输出数据并筛选 85 分以上同学,代码完善与注意事项揭秘(字节豆包 | 298点数解答 | 2024-12-12 18:15:17)255
- Python 读取 scores.csv 文件:输出全量数据并揪出 85 分以上同学(阿里通义 | 340点数解答 | 2024-12-13 12:36:14)214
- Python:读取班级比赛得分 CSV 文件,筛选 85 分以上同学全攻略 (阿里通义 | 319点数解答 | 2024-12-13 12:54:42)303
- 计算机表格数据结构全解析:从基础概念到 CSV 文件编程排序实现 (字节豆包 | 257点数解答 | 2025-12-08 17:31:17)47
- 用 Pandas 深度剖析数据:从读取到统计分析全流程实战(GPT | 642点数解答 | 2024-06-30 15:39:49)356
- 用 Pandas 深入分析招聘数据:从数据读取到可视化全流程解析(GPT | 1539点数解答 | 2024-06-30 15:56:50)370
- Python 运行报错:urllib3 网络连接创建失败,原因及排查建议(字节豆包 | 161点数解答 | 2024-10-31 00:39:36)459
- C++ 实现:精准统计给定范围 [L, R] 内数字 2 出现的次数及代码详解(字节豆包 | 401点数解答 | 2026-02-05 21:17:05)41
- C++实现:统计[L, R]范围内数字2出现的次数及代码详解(字节豆包 | 489点数解答 | 2026-02-07 17:12:26)44
- PyCharm 中用 Selenium 编写自动化测试脚本,轻松登录 eShop 测试平台并点击“我的订单”(字节豆包 | 304点数解答 | 2024-11-06 15:38:30)431
- Python:从 CSV 文件读取学生成绩并按成绩降序排序写入新文件的优化方案(阿里通义 | 447点数解答 | 2024-11-27 21:37:39)250