网页截图的方法

从网上看到别人写的网页截图的方法 ,原作者HDFLOVE

 

procedure GenerateJPEGfromBrowser(browser: iWebBrowser2;
                                 jpegFQFilename: string; srcHeight:
                                 integer; srcWidth: integer;
                                 tarHeight: integer; tarWidth: integer);
var
  sourceDrawRect: TRect;
  targetDrawRect: TRect;
  sourceBitmap  : TBitmap;
  targetBitmap  : TBitmap;
  aJPG          : TJPEGImage;
  aViewObject   : IViewObject;
begin
  sourceBitmap :
=  TBitmap.Create;
  targetBitmap :
=  TBitmap.Create;
  aJPG :
=  TJPEGImage.Create;
  
try
    
try
      sourceDrawRect :
=  Rect(0, 0, srcWidth, srcHeight);
      sourceBitmap.Width :
=  srcWidth;
      sourceBitmap.Height :
=  srcHeight;

      aViewObject :
=  browser as IViewObject;

      
if  aViewObject = nil then
        Exit;

      OleCheck(aViewObject.Draw(DVASPECT_CONTENT, 
1 , nil, nil,
                               Form1.Handle,
                               sourceBitmap.Canvas.Handle,
                               @sourceDrawRect, nil, nil, 0));

       
//  设定图片尺寸 
      targetDrawRect :
=  Rect(0, 0, tarWidth, tarHeight);
      targetBitmap.Height :
=  tarHeight;
      targetBitmap.Width :
=  tarWidth;
      targetBitmap.Canvas.StretchDraw(targetDrawRect, sourceBitmap);

      
//  产生JPEG并保存
      aJPG.Assign(targetBitmap);

      aJPG.SaveToFile(jpegFQFilename)
    
finally
      aJPG.Free;
      sourceBitmap.Free;
      targetBitmap.Free
    end; { 
try  }

  
except
    
//  处理异常
  end; 
end;

 

procedure CaptureWebPage;
var
  IDoc1: IHTMLDocument2;
  Web  : iWebBrowser2;
  tmpX,
  tmpY : integer;
begin
  with WebBrowser1 do
  begin
    Document.QueryInterface(IHTMLDocument2, IDoc1);
    Web :
=  ControlInterface;
    tmpX :
=  Height;
    tmpY :
=  Width;
    Height :
=  OleObject.Document.Body.getAttribute( ' scrollHeight ' , 0)  +  GetSystemMetrics(SM_CXVSCROLL) + 3 ; //  .ParentWindow.Screen.Height + 1000 ;
    Width :
=  OleObject.Document.Body.getAttribute( ' scrollwidth ' , 0)  +  GetSystemMetrics(SM_CXVSCROLL) + 3 ; // .ParentWindow.Screen.Width;
    GenerateJPEGfromBrowser(Web, 
' demo1.jpg ' , Height, Width, Height, Width);
        Height :
=  tmpX;
    Width :
=  tmpY;
  end;

end;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 使用 Selenium 进行网页方法如下: 1. 首先需要安装 Selenium 库和浏览器驱动(如 ChromeDriver)。 2. 然后可以使用以下代码打开浏览器并访问想要网页: ```python from selenium import webdriver driver = webdriver.Chrome() driver.get('https://www.example.com') ``` 3. 接着可以使用以下代码对整个网页进行: ```python driver.save_screenshot('screenshot.png') ``` 4. 也可以使用 `driver.find_element_by_*` 方法来定位某个元素,然后使用 `element.screenshot` 方法对该元素进行: ```python element = driver.find_element_by_id('some-element') element.screenshot('element_screenshot.png') ``` 5. 最后,使用完后记得关闭浏览器: ```python driver.quit() ``` 注意:如果要在脚本执行过程中隐藏浏览器窗口,可以在创建浏览器驱动时使用 `chrome_options` 参数,例如: ```python from selenium.webdriver.chrome.options import Options chrome_options = Options() chrome_options.add_argument("--headless") driver = webdriver.Chrome(chrome_options=chrome_options) ``` 希望这些信息能帮助到你。 ### 回答2: Selenium是一个自动化测试工具,可以用于模拟用户在Web上的操作和行为,其中一个功能就是网页。 在使用Selenium进行网页时,首先需要先安装Selenium的相关库,并确保浏览器驱动已配置好。常用的浏览器驱动有ChromeDriver、EdgeDriver、FirefoxDriver等,具体选择哪个驱动取决于你想要的浏览器类型。 接下来,在编写代码中实现网页的功能。可以通过如下步骤实现: 1. 导入相关的库和模块,比如selenium和time。 ```python from selenium import webdriver import time ``` 2. 创建一个浏览器驱动对象,比如使用ChromeDriver。 ```python driver = webdriver.Chrome() ``` 3. 打开目标网页链接。 ```python driver.get("http://www.example.com") ``` 4. 设置等待时间,确保页面加载完成。 ```python time.sleep(5) # 等待5秒 ``` 5. 调用函数,将网页内容保存在指定位置。 ```python driver.save_screenshot("screenshot.png") ``` 6. 关闭浏览器。 ```python driver.quit() ``` 以上就是使用Selenium进行网页的基本步骤。通过这些简单的代码和操作,我们可以在指定的网页上进行,将保存到本地,方便后续的分析、比较和处理。 需要注意的是,Selenium提供了丰富的API和方法,可以满足各种不同的需求。比如,可以选择取整个网页,或者只取指定元素的,也可以取特定区域或特定大小的等等。根据具体的需求,可以进一步调整和优化代码,来实现更加灵活和准确的功能。 ### 回答3: Selenium是一个用于自动化浏览器操作的工具,它可以模拟用户在浏览器上的各种操作,包括网页网页是指将网页的当前状态以片的形式保存下来。 使用Selenium进行网页非常简单,只需要简单的几行代码即可完成。首先,我们需要导入Selenium库。然后,我们需要指定浏览器的驱动程序,例如ChromeDriver或FirefoxDriver。接下来,我们创建一个浏览器实例,打开要网页。最后,使用Selenium提供的方法,将当前网页保存为一个片文件。 在Selenium中,有两种方式可以进行网页。第一种方式是使用get_screenshot_as_file方法,该方法可以将网页保存为一个文件。示例代码如下: ```python from selenium import webdriver # 指定浏览器驱动程序的路径 driver = webdriver.Chrome('/path/to/chromedriver') # 打开网页 driver.get('https://www.example.com') # 进行网页,并保存为文件 driver.get_screenshot_as_file('/path/to/screenshot.png') # 关闭浏览器 driver.quit() ``` 第二种方式是使用get_screenshot_as_base64方法,该方法可以将网页保存为Base64格式的字符串。示例代码如下: ```python from selenium import webdriver # 指定浏览器驱动程序的路径 driver = webdriver.Chrome('/path/to/chromedriver') # 打开网页 driver.get('https://www.example.com') # 进行网页,并将结果保存为Base64字符串 screenshot = driver.get_screenshot_as_base64() # 关闭浏览器 driver.quit() ``` 以上就是使用Selenium进行网页方法,无论是保存为文件还是保存为Base64字符串,都可以根据实际需求选择适合的方式。使用Selenium进行网页可以方便地进行页面测试、错误排查和数据收集等工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值