当前位置: 首页 > 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.rkmt.cn/news/112575.html

相关文章:

  • DownKyi终极指南:5步掌握B站视频批量下载技巧
  • 大雪深埋强化课划重点|保号性专题
  • 2、深入探索Bash脚本编程
  • vue基于Springboot框架的个人健康运动健身饮食人体血糖监测系统
  • 湖南网安基地:湖南地区口碑最好的网络安全培训机构深度测评
  • LobeChat能否实现AI剪纸艺术家?民俗图案生成与文化寓意解读
  • 光伏设计还在开盲盒?iSolarBP的寻优设计,让我从“画图匠”变“方案大师”
  • python pandas操作excel
  • 6‘-唾液乳糖— 引领婴幼儿营养与健康的下一代母乳低聚糖核心成分 CAS:35890-39-2
  • 机器学习--线性回归
  • Pinterest灵感采集:LobeChat发现流行美学
  • 半年成功入行网络安全!一位零基础转行者的真实学习路径与资源全分享
  • 如何将VSCode的扩展同步到另一台电脑
  • 别再纠结!2025高薪IT赛道二选一:云计算运维与网络安全的真实转行故事与选择建议
  • 14、Red Hat Linux实用应用指南
  • 物联网边缘设备+LobeChat分布式AI终端网络
  • 数字员工赋能熊猫智汇推动AI销售工具智能化转型
  • 零基础如何高效转行网络安全?大佬亲授半年计划,避开90%的入门弯路
  • 投资决策支持:LobeChat整理行业研报要点
  • LobeChat安全机制解读:保障企业数据不出内网
  • 用LobeChat实现团队共享AI助手的权限管理策略
  • Java开发者的AI逆袭之路:不用抛弃Java,照样在大模型时代吃得开(必收藏)
  • 如何将当前工程文件发布版本,并使用?
  • 寓言创作工坊:LobeChat教你做道德启示
  • NVIDIA Profile Inspector深度解析:解锁显卡性能的终极工具
  • 钉钉机器人网关接入LobeChat对外服务能力
  • LobeChat新闻摘要生成服务搭建过程
  • 东南大学论文模板配置终极指南:5分钟快速上手
  • 语音转文字再回复:LobeChat全流程语音交互演示
  • 【计算机视觉(9)】运动恢复结构:从图像到三维点云的完整流程