当前位置: 首页 > news >正文

python爬虫学习(搜索)

python实现打开网站并进行搜索操作

打开B站搜索python

from selenium import webdriver from selenium.webdriver.edge.options import Options from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.by import By from selenium.webdriver.edge.service import Service import os # ========== 1. 修复核心错误 ========== # 错误1:路径含多余空格("AppLication" 拼写错误+路径空格) EDGE_BROWSER_PATH = r"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" # 错误2:必须指定 EdgeDriver 路径(之前的环境问题) EDGEDRIVER_PATH = r"C:\Users\叶梓聪\AppData\Local\Programs\Python\Python37\Scripts\msedgedriver.exe" # 替换为你的驱动路径 # ========== 2. 配置 Edge 选项 ========== edge_options = Options() edge_options.binary_location = EDGE_BROWSER_PATH # 修复路径+拼写错误 # 关闭日志干扰 edge_options.add_experimental_option('excludeSwitches', ['enable-logging']) # 禁用自动化提示 edge_options.add_argument('--disable-blink-features=AutomationControlled') # ========== 3. 配置驱动服务 ========== # 临时加入环境变量(避免 PATH 问题) os.environ["PATH"] += os.pathsep + os.path.dirname(EDGEDRIVER_PATH) service = Service(executable_path=EDGEDRIVER_PATH) # ========== 4. 启动浏览器 ========== driver = webdriver.Edge(service=service, options=edge_options) driver.maximize_window() # 最大化窗口,避免元素被遮挡 driver.implicitly_wait(10) # 隐式等待10秒,确保页面加载完成 # ========== 5. 修复元素定位+方法名错误 ========== driver.get('http://www.bilibili.com') # 错误3:find_eLement 拼写错误(L大写)→ 正确:find_element # 错误4:TAG_NAME 定位input会找到多个元素,改用B站搜索框专属定位 search_box = driver.find_element(By.ID, "nav-searchform") # B站搜索框父元素 input_box = search_box.find_element(By.TAG_NAME, "input") # 精准定位搜索输入框 # 错误5:清空原有内容(避免残留)+ 输入关键词 + 回车 input_box.clear() input_box.send_keys("Python" + Keys.RETURN) # 等待用户输入,保持浏览器打开 input('按回车键关闭浏览器...') driver.quit() # 最后关闭浏览器

爬取百度搜图图片

'''爬取图片(find_element)2.0''' import requests import os import time if not os.path.exists("./命运二"): os.mkdir("./命运二") #批量化下载网页资源 from selenium import webdriver from selenium.webdriver.edge.options import Options from selenium.webdriver.common.by import By edge_options = Options() edge_options.binary_location =r"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" driver=webdriver.Edge(options=edge_options) driver.get('https://image.baidu.com/search/index?tn=baiduimage&ie=utf-8&word=命运二')#执行JavaScript滚动操作 driver.execute_script("window.scrollTo(0, document.body.scrollHeight);") time.sleep(5) img_list=driver.find_elements(By.XPATH, value="//img[@class='img_7rRSL']")# print(img_list) i=1 for img in img_list: #获取图片的src属性 img_url = img.get_attribute("src") img_data = requests.get(img_url) #保存图片到文件 with open(f"./命运二/{i}.png",'wb') as f: f.write(img_data.content) i +=1

爬取购物网站好评,并变成文档

from selenium import webdriver from selenium.webdriver.edge.options import Options from selenium.webdriver.common.by import By import time import os # ========== 核心修复1:路径错误 + 驱动配置 ========== # 错误1:路径多余空格 + AppLication拼写错误(L大写) EDGE_BROWSER_PATH = r"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" # 错误2:必须指定EdgeDriver路径(解决找不到驱动问题) EDGEDRIVER_PATH = r"C:\Users\叶梓聪\AppData\Local\Programs\Python\Python37\msedgedriver.exe" # ========== 核心修复2:配置Edge浏览器并启动 ========== edge_options = Options() edge_options.binary_location = EDGE_BROWSER_PATH # 正确的浏览器路径 edge_options.add_experimental_option('excludeSwitches', ['enable-logging']) # 关闭日志干扰 # 临时将驱动路径加入环境变量(避免PATH问题) os.environ["PATH"] = os.path.dirname(EDGEDRIVER_PATH) + os.pathsep + os.environ["PATH"] # 启动浏览器(必须先启动driver,才能用driver定位元素) driver = webdriver.Edge(options=edge_options) driver.maximize_window() driver.implicitly_wait(10) # 元素定位超时时间(防页面加载慢) # 补充:打开目标网页(你原代码缺失,需替换为实际爬取评论的网址) driver.get("https://review.suning.com/cluster_cmmdty_review/cluster-38249278-000000012389328846-0000000000-1-good.htm?originalCmmdtyType=general&safp=d488778a.10004.loverRight.166") # 替换为你要爬取评论的页面URL # ========== 核心修复3:文件操作(用with更安全) ========== # 错误3:直接open文件未做容错,改用with上下文管理器(自动关闭) with open('好评1.txt', 'w', encoding='utf8') as hp_file: # ========== 核心修复4:函数定义(传参+拼写+语法) ========== def get_py_content(driver, file): # 错误4:传参缺失driver;fiLe拼写错误→file # 错误5:pj_elments_content拼写错误→pj_elements_content;多余空格删除 # 错误6:driver未传参,需作为参数传入 pj_elements_content = driver.find_elements(by=By.CLASS_NAME, value='body-content') # 错误7:elment拼写错误→element;file.write而非fiLe for element in pj_elements_content: if element.text: # 容错:过滤空评论 file.write(element.text.strip() + '\n') # strip()去首尾空格 # ========== 核心修复5:调用函数(传入driver和文件对象) ========== get_py_content(driver, hp_file) # 错误8:原代码未传driver # ========== 核心修复6:下一页逻辑(语法+拼写+判断) ========== # 错误9:next_elements拼写错误→next_elements;多余空格删除 # 错误10:XPath中class值末尾多余空格,需和网页一致(建议简化) next_elements = driver.find_elements(by=By.XPATH, value='//a[@class="next rv-maidian"]') print(f"找到下一页按钮数量:{len(next_elements)}") # 错误11:while判断逻辑优化(判断长度而非空列表) while len(next_elements) > 0: next_element = next_elements[0] time.sleep(1) # 错误12:sLeep拼写错误→sleep next_element.click() # 点击下一页 time.sleep(2) # 等待页面加载完成(比1秒更稳妥) get_py_content(driver, hp_file) # 重新获取当前页评论 # 错误13:driver,find_elements多余逗号→driver.find_elements # 错误14:next_eLements拼写错误→next_elements;多余空格删除 next_elements = driver.find_elements(by=By.XPATH, value='//a[@class="next rv-maidian"]') # 错误15:原代码hp_file.close()在with外无意义(with已自动关闭) print("✅ 评论爬取完成,文件已保存为 好评1.txt") driver.quit() # 关闭浏览器

http://www.cnnetsun.cn/news/95293.html

相关文章:

  • TensorFlow调试报错看不懂?LobeChat帮你解读
  • 2026届秋招AI岗位狂潮:大厂招聘激增10倍,这份成功上岸攻略不容错过!
  • 1、掌握 Linux 脚本编程:从基础到高级应用
  • 3、Bash脚本编写:基础与进阶
  • C#教程(小部分)
  • HNU 编译系统 作业1
  • vue基于Springboot框架的写字楼危险品管理信息系统的设计和实现
  • LobeChat现场引导标识文案
  • Vue3使用pinia做全局状态管理的简单示例
  • 2025计算机能力竞赛暨城市联赛——算法编程赛道【秋季赛】(二)
  • 用户体验调研问卷:LobeChat设计有效题目
  • BONT-L肽有效成分:棕榈酰六肽-19 Palmitoyl Hexapeptide-19
  • 1、Linux网络管理与资源指南
  • 9、Linux 下 PPP 协议的深入解析与配置指南
  • 13、Linux网络重要特性全解析
  • 17、深入了解 Taylor UUCP:原理、配置与应用
  • 避开“入狱”陷阱:零基础网络安全入门实战指南与知识图谱
  • 基于深度学习的安防监控校园暴力行为检测算法研究
  • 基于STM32单片机的智能家居系统设计
  • 14、Red Hat Linux实用应用指南
  • 零基础学网络安全?入门前必看的3大认知误区与5个关键准备
  • 21、红帽Linux安全与故障排除全攻略
  • 基于微信小程序的校园电子图书馆系统毕业设计
  • 创新首发!基于VMD+WDCNN-SENet的故障诊断模型
  • Python好不好学?
  • NAS 部署私人云平台,支持扩展only office等办公应用
  • Linux EEPROM调试
  • 终极解决方案:告别Visual C++运行库缺失困扰,一键完成全版本部署
  • 安达发|当艺术遇见算法:APS系统如何解开工艺品行业的生产魔方
  • Obsidian Style Settings插件使用指南:打造个性化笔记界面