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

什么是网站建设策划自己公司网站如何添加qq

什么是网站建设策划,自己公司网站如何添加qq,制作公司网页宣传,网站建站公司一站式服务文章目录 1. 反爬机制概述2. 反爬原理3. 案例分析4. 破解思路5. 实战样例样例1#xff1a;使用Python和Selenium破解CSS位置偏移反爬样例2#xff1a;电商网站商品列表CSS位置偏移反爬破解 6. 总结 1. 反爬机制概述 CSS位置偏移反爬是一种常见的反爬虫技术#xff0c;通过C… 文章目录 1. 反爬机制概述2. 反爬原理3. 案例分析4. 破解思路5. 实战样例样例1使用Python和Selenium破解CSS位置偏移反爬样例2电商网站商品列表CSS位置偏移反爬破解 6. 总结 1. 反爬机制概述 CSS位置偏移反爬是一种常见的反爬虫技术通过CSS样式将网页内容的位置进行偏移使得爬虫难以直接获取正确的文本内容。这种技术通常用于保护网页上的敏感信息或防止自动化工具抓取数据。 2. 反爬原理 CSS偏移指网站通过JavaScript动态修改页面元素的style属性如top、left、margin、padding等使元素在页面上的位置不断变化。这种动态变化使得基于固定定位的爬虫难以准确抓取目标数据。 伪元素使用::before和::after伪元素插入额外的字符或内容干扰爬虫的解析。 字体加密结合自定义字体使得字符的显示与实际编码不一致增加解析难度。 反爬原理: ​动态渲染网站使用JavaScript在客户端动态渲染页面元素的最终位置只有在页面加载完成后才能确定。​​随机偏移元素的位置可能每次加载时都有所不同增加了定位难度。​​防爬检测网站可能通过检测浏览器行为如鼠标移动、点击等来判断是否为爬虫结合CSS位置偏移进一步增强防护。 3. 案例分析 假设有一个网页其HTML结构如下 div classcontentspan styleposition: absolute; left: 10px;H/spanspan styleposition: absolute; left: 30px;e/spanspan styleposition: absolute; left: 50px;l/spanspan styleposition: absolute; left: 70px;l/spanspan styleposition: absolute; left: 90px;o/span /div运行 HTML 在这个例子中每个字符都被绝对定位到不同的位置爬虫如果直接获取文本内容可能会得到乱序的字符。 4. 破解思路 解析CSS样式通过解析每个字符的position、left、top等属性重新排列字符顺序。 模拟浏览器渲染使用无头浏览器如Puppeteer、Selenium加载页面获取渲染后的文本内容。 字体解密如果使用了自定义字体需要解析字体文件将字符映射到正确的编码。 有些网站会通过AJAX动态加载内容导致部分数据在初始HTML中不可见。此时可以通过模拟滚动、点击加载更多按钮等方式确保所有数据加载完毕。 此外也要注意采取以下策略 ​使用无头浏览器如Selenium、Playwright模拟真实用户行为处理动态渲染页面。​​随机化操作模拟人类操作如随机等待时间、随机点击位置避免被检测为爬虫。​​IP代理池使用多个IP地址轮换请求减少单个IP的请求频率。​​数据校验通过多维度数据校验确保抓取的数据准确性和完整性。 5. 实战样例 样例1使用Python和Selenium破解CSS位置偏移反爬 以下是一个使用Python和Selenium破解CSS位置偏移反爬的样例 from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.common.by import By from selenium.webdriver.chrome.options import Options# 配置Chrome选项 chrome_options Options() chrome_options.add_argument(--headless) # 无头模式 chrome_options.add_argument(--disable-gpu)# 设置ChromeDriver路径 service Service(/path/to/chromedriver)# 启动浏览器 driver webdriver.Chrome(serviceservice, optionschrome_options)# 打开目标网页 driver.get(https://example.com)# 获取所有字符元素 char_elements driver.find_elements(By.CSS_SELECTOR, .content span)# 按left属性排序 sorted_chars sorted(char_elements, keylambda x: int(x.value_of_css_property(left).replace(px, )))# 提取并拼接字符 text .join([char.text for char in sorted_chars])print(f解析后的文本内容: {text})# 关闭浏览器 driver.quit()样例2电商网站商品列表CSS位置偏移反爬破解 假设有一个电商网站商品列表页通过CSS位置偏移来展示商品信息每次刷新页面时商品的位置会有所不同。我们的目标是抓取每个商品的名称和价格。技术栈有 编程语言Python爬虫框架Selenium用于模拟浏览器行为解析库BeautifulSoup用于解析HTML from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.common.by import By from selenium.webdriver.chrome.options import Options from bs4 import BeautifulSoup import time# 配置Chrome选项 chrome_options Options() chrome_options.add_argument(--headless) # 无头模式 chrome_options.add_argument(--disable-gpu) chrome_options.add_argument(--no-sandbox)# 配置WebDriver路径 service Service(/path/to/chromedriver) driver webdriver.Chrome(serviceservice, optionschrome_options)# 目标URL url https://example.com/productstry:driver.get(url)time.sleep(3) # 等待页面加载# 模拟滚动确保所有商品加载last_height driver.execute_script(return document.body.scrollHeight)while True:driver.execute_script(window.scrollTo(0, document.body.scrollHeight);)time.sleep(2)new_height driver.execute_script(return document.body.scrollHeight)if new_height last_height:breaklast_height new_height# 获取页面源代码html driver.page_sourcesoup BeautifulSoup(html, html.parser)# 解析商品信息products soup.find_all(div, class_product-item)for product in products:name product.find(span, class_product-name).get_text(stripTrue)price product.find(span, class_product-price).get_text(stripTrue)print(f商品名称: {name}, 价格: {price})finally:driver.quit()由于商品位置动态变化直接通过固定定位如XPath或CSS选择器可能无法准确定位。可以采取以下策略 ​元素属性识别通过元素的唯一属性如ID、特定的class、文本内容进行定位而不是依赖位置。​​相对定位先定位一个稳定的父元素再通过相对位置查找子元素。​​动态等待使用Selenium的显式等待WebDriverWait等待特定元素出现而不是固定等待时间。 示例优化: from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC# 等待商品列表加载完成 wait WebDriverWait(driver, 10) products wait.until(EC.presence_of_all_elements_located((By.CLASS_NAME, product-item)))for product in products:name product.find_element(By.CLASS_NAME, product-name).textprice product.find_element(By.CLASS_NAME, product-price).textprint(f商品名称: {name}, 价格: {price})6. 总结 CSS位置偏移反爬技术通过改变字符的显示位置来干扰爬虫的解析但通过解析CSS样式或使用无头浏览器模拟渲染可以有效破解这种反爬机制。在实际应用中还需要结合其他反爬技术如字体加密、动态加载等进行综合处理。
http://www.dnsts.com.cn/news/249485.html

相关文章:

  • 网站建设 提供源码成都旅游景点大全排名
  • php网站后台上传图片有没有推荐到首页的功能海外推广营销
  • 电子商务师证官网永康信誉好关键词优化
  • 国外域名注册哪个网站好wordpress火车头发布接口
  • 贵阳设计网站建设制作网络网站
  • 百度网站制作推广定制网站建设推广方案
  • 郑州专业网站制作费用报价汕尾网站seo
  • 做网站电脑开一天用多少钱网店推广的重要性
  • 网站建设找邓金平网站做弹窗广告吗
  • 搭建网站账户系统wordpress没有首页
  • 做网站帮外国人淘宝wordpress本地文章上传到服务器
  • 最大网站建设公司排名如何制作h5做网站
  • 济南商城网站开发石家庄网站关键词
  • 网站建设实训报告意见和建议帮忙注册公司
  • 沧州高端网站建设软件管理app
  • 购买域名后如何建立网站影视网站设计论文
  • 淄博网站建设选择臻动传媒大兴企业官网网站建设咨询
  • 网站首页布局设计用什么网页制作手机软件
  • 山东中佛龙建设有限公司网站seo网络推广是干嘛的
  • 网站建设服务器搭建有没有帮忙做问卷调查的网站
  • 高端的网站设计公司百度推广客户端怎么登陆
  • 制作手工灯笼网站建设优化推广
  • wordpress网站主机信息网络技术
  • 中国住房和城乡建设部建造师网站我的世界做皮肤网站
  • 网站建设文化策划宣化网站制作公司
  • 网络设计与实施企业网站优化定制
  • 深圳建设网站公司哪儿济南兴田德润有活动吗网站建设用什么教材
  • 做手机网站多少钱网站开发细节
  • 网站项目如何做需求分析it软件网站建设
  • 找网站公司企业备案营销型网站和展示型网站的区别