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

定兴网站建设上海十大营销策划公司排名

定兴网站建设,上海十大营销策划公司排名,php可以开发动态网站,兴宁电子商务网站建设使用Selenium来抓取动态网页。动态网页通常是指那些通过JavaScript动态加载内容的网页,这些内容在初始HTML中并不存在,因此使用传统的requests库无法获取到这些动态生成的内容。Selenium可以模拟浏览器行为,等待JavaScript执行并渲染页面&…

使用Selenium来抓取动态网页。动态网页通常是指那些通过JavaScript动态加载内容的网页,这些内容在初始HTML中并不存在,因此使用传统的requests库无法获取到这些动态生成的内容。Selenium可以模拟浏览器行为,等待JavaScript执行并渲染页面,从而获取到完整的页面内容。

在这里插入图片描述

下面是一个使用 Selenium 编写的动态网页爬虫示例,用于抓取京东商品搜索页面的信息(商品名称和价格),并附有详细注释:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time# 设置 Chrome 浏览器选项
chrome_options = Options()
chrome_options.add_argument('--headless')  # 无头模式,不显示浏览器窗口
chrome_options.add_argument('--disable-gpu')  # 禁用GPU加速
chrome_options.add_argument('--no-sandbox')  # Linux 系统需要添加此参数# 创建 WebDriver 服务 (需要下载对应版本的 chromedriver)
service = Service(executable_path='./chromedriver')  # 替换为你的 chromedriver 路径# 初始化浏览器驱动
driver = webdriver.Chrome(service=service, options=chrome_options)try:# 1. 打开目标网页driver.get('https://search.jd.com/Search?keyword=手机')print("已打开京东搜索页面...")# 2. 等待页面加载 - 显式等待(推荐)# 等待直到商品列表元素出现(最长等待10秒)WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, ".gl-item")))print("商品列表加载完成!")# 3. 模拟滚动页面以加载更多内容(针对懒加载页面)# 动态页面通常需要滚动才能加载更多元素for i in range(3):  # 滚动3次driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")print(f"滚动页面 {i+1}/3...")time.sleep(1.5)  # 等待新内容加载# 4. 定位所有商品元素# 使用 CSS 选择器获取商品列表项items = driver.find_elements(By.CSS_SELECTOR, '.gl-item')print(f"共找到 {len(items)} 个商品")# 5. 遍历并提取数据results = []for item in items:try:# 在单个商品元素内查找名称和价格name = item.find_element(By.CSS_SELECTOR, '.p-name em').text.strip()price = item.find_element(By.CSS_SELECTOR, '.p-price i').text.strip()results.append({'name': name, 'price': price})except Exception as e:print(f"提取商品时出错: {str(e)}")continue# 6. 打印抓取结果print("\n抓取结果:")for i, result in enumerate(results[:5], 1):  # 只打印前5个结果print(f"{i}. {result['name']} - 价格: {result['price']}")print(f"\n共抓取 {len(results)} 条商品数据")except Exception as e:print(f"爬虫执行出错: {str(e)}")finally:# 7. 关闭浏览器driver.quit()print("浏览器已关闭")

代码详细解释:

1、导入必要模块

  • webdriver:控制浏览器
  • By:元素定位方式
  • WebDriverWaitexpected_conditions:显式等待
  • Options:浏览器配置选项

2、浏览器设置

  • headless 模式:后台运行不显示界面
  • 禁用 GPU 和沙盒模式:提高稳定性和兼容性

3、、初始化驱动

  • 需要下载对应 Chrome 版本的 chromedriver
  • 指定 driver 路径和服务

4、页面加载等待

  • 使用显式等待(WebDriverWait)确保目标元素加载完成
  • time.sleep() 更高效智能

5、模拟滚动

  • 执行 JavaScript 滚动到底部
  • 分次滚动并等待加载(针对懒加载页面)

6、元素定位

  • 使用 CSS 选择器定位商品列表项
  • 在单个商品元素内进一步提取名称和价格

7、异常处理

  • 捕获单个商品提取时的异常
  • 整体爬虫的异常捕获

8、资源清理

  • finally 块确保关闭浏览器释放资源

使用前准备:

1、安装必要库:

pip install selenium webdriver-manager

2、下载对应浏览器版本的驱动:

  • Chrome:https://chromedriver.chromium.org/downloads

  • 或使用 webdriver-manager 自动管理:

    from webdriver_manager.chrome import ChromeDriverManager
    service = Service(ChromeDriverManager().install())
    

常见问题解决:

1、元素定位失败

  • 检查网页结构是否更新
  • 使用浏览器开发者工具验证选择器

2、内容加载不全

  • 增加滚动次数和等待时间
  • 调整显式等待超时时间

3、反爬措施应对

  • 添加 user-agent 头:

    chrome_options.add_argument('user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36')
    
  • 添加代理:

    chrome_options.add_argument('--proxy-server=http://your-proxy-ip:port')
    

这个爬虫可以扩展用于其他动态网站,只需修改:目标 URL、元素定位选择器、滚动/等待策略、数据提取逻辑等就能实现一个完整的爬虫过程。如有不懂可以留言讨论。

http://www.dtcms.com/wzjs/379370.html

相关文章:

  • 国内做企业英文网站用什么cmsseo排名优化推广
  • vue做的个人网站今日热榜
  • 网站开发合同书网站制作流程图
  • 做java面试题的网站其中包括
  • 惠州响应式网站建设公司企业推广宣传方案
  • 全国十大装修公司360优化大师旧版本
  • 怎样选择网站的关键词线上营销平台
  • 合肥企业网站设计制作嘉兴seo网络推广
  • 男女之间做那个事情很污的网站关键词排名的工具
  • 怎样做网站推广啊视频查域名网站
  • 做软件下载网站有哪些友情链接交换群
  • 做网站用什么数据库参考消息今天新闻
  • ecshop二次开发网站开发心得个人推广网站
  • 多用户商城(c2c)网站制作方案推广普通话的重要意义
  • 定兴做网站北京厦门网站优化
  • 沈阳市人大网站建设时间网站seo报告
  • 上海制作网站公司哪家好优化大师怎么样
  • 室内设计软件自学湖南关键词优化快速
  • shopify做国内网站网络营销与策划
  • wordpress增加内存公司网络优化方案
  • 静态网站模板源码下载网络小说排行榜
  • 网站上怎么做游戏宁波如何做抖音seo搜索优化
  • 宁波建网站哪家好用点优秀软文范例200字
  • 织梦网站怎么上传视频推广一个产品有哪些方式
  • 如何把电脑改成服务器 做网站网络推广平台排名
  • 用wordpress做论坛广州seo顾问seocnm
  • 手机一键建站上海搜索排名优化
  • 免费织梦网站模板网站排名推广工具
  • 百度抓取不到网站歌尔股份砍单
  • 网站建设工资 优帮云如何进行网站性能优化?