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

个人主页网站制作平台网站建设协议书

个人主页网站制作,平台网站建设协议书,网站设计尺寸,头条新闻最新消息想用程序去抓取一个网页的内容,Delphi 有自己的 HTTP 库。比如 Indy 的 TIdHTTP,或者 TNetHTTPClient。 这里测试一下使用 Python 的 HTTP 库抓取网页,然后把抓取的内容给 Delphi 的程序。 Delphi 程序,界面上拖控件如下&#x…

想用程序去抓取一个网页的内容,Delphi 有自己的 HTTP 库。比如 Indy 的 TIdHTTP,或者 TNetHTTPClient。

这里测试一下使用 Python 的 HTTP 库抓取网页,然后把抓取的内容给 Delphi 的程序。

Delphi 程序,界面上拖控件如下:

    Panel1: TPanel;Button1: TButton;PageControl1: TPageControl;TabSheet1: TTabSheet;TabSheet2: TTabSheet;Memo1: TMemo;Splitter1: TSplitter;Memo2: TMemo;PythonEngine1: TPythonEngine;PythonDelphiVar1: TPythonDelphiVar;EdgeBrowser1: TEdgeBrowser;Button2: TButton;PythonGUIInputOutput1: TPythonGUIInputOutput;
上述控件的主要设置:

1. PythonEngine1.IO := PythonGUIInputOutput1;

2. PythonGUIInputOutput1.Output := Memo1;  //用 Memo1 来显示 Python 代码打印出来的网页内容。

3. PythonDelphiVar1.Engine := PythonEngine1;

4. PythonDelphiVar1.VarName := 'MyHTML'; //这个变量名称,会在 Python 代码里面使用。

5. 在 Memo2.Lines 里面放 Python 代码。

6. EdgeBrowser1 用于显示由 Python 抓回来的页面内容。

Delphi 的主要代码如下:
procedure TForm3.Button1Click(Sender: TObject);
vari: Integer;
beginEdgeBrowser1.Navigate('D:\test.html');//循环等待 EdgeBrowser1 打开完成。否则当 Python 抓取到页面后写入 EdgeBrowser 会失败。i := 0;while True dobeginSleep(100);Inc(i);Application.ProcessMessages;if i > 10 then Break;end;PythonEngine1.ExecStrings(Memo2.Lines);
end;procedure TForm3.Button2Click(Sender: TObject);
varS: string;
begin
//  S := '<html><head></head><body>abc 12333 <p> hello world!!!</body></html>';S := VarToStr(PythonDelphiVar1.Value);ShowHTML(S);
end;procedure TForm3.PythonDelphiVar1SetData(Sender: TObject; Data: Variant);
varS: string;
begin//ShowMessage('写页面');S :=  VarToStr(Data);ShowHTML(S);
end;procedure TForm3.ShowHTML(const S: string);
begin
{--------------------------------------------------------------------------使用 EdgeBrowse 必须:1. 当前目录下有 WebView2Loader.dll2. 必须先 Navigate 打开后,才能 NavigateToString
--------------------------------------------------------------------------}EdgeBrowser1.NavigateToString(s);end;

Python 代码如下:

import http.client# 页面的路径:blog.csdn.net/pcplayerconn = http.client.HTTPSConnection("blog.csdn.net")  # 工作正常,这里只能填写站点名称。子路径在 request 里面填写。conn.request("GET", "/pcplayer")
response = conn.getresponse()
print(response.status, response.reason)
data = response.read()
print(data.decode())  # 这里是输出的网页内容# MyHTML 是 Delphi 的控件对应的变量,它被赋值时会在 Delphi 代码里触发 OnSetData 事件。
# Delphi 程序在这个 OnSetData 事件里面拿到页面内容,写到浏览器里面去,让浏览器显示。
MyHTML.value = data.decode()# print 把页面内容输出,这个输出在 Delphi 程序里面会显示到 Memo1 里面。
print(response.url)
conn.close()

简单解释:

1. Delphi 程序里面的 EdgeBrowser 加载一个 test.html 页面。加载这个页面是为了打开这个 Browser 方便后继写入抓取的页面内容。

2. PythonEngine1 执行 Memo2 里面的 Python 代码;

3. PythonGUIInputOutput1 将 Python 代码执行后的 print 语句的内容输出到 Memo1 里面。这里是程序抓取到的网页内容。

4. PythonDelphiVar1 获取到 Python 代码里面的 MyHTML.Value 的值,也就是页面内容。并将这个内容写入 EdgeBrowser 浏览器显示。

运行效果图

上面这个图显示了 Memo1 里面呈现的网页内容

下面这个图显示了抓取的网页用浏览器显示的样子

总结:

在 Delphi 里面通过使用 Python4Delphi 控件,可以在 Delphi 程序里面调用 Python 的代码去执行 HTTP 访问。

http://www.yayakq.cn/news/189208/

相关文章:

  • 无锡企业网站制作价格房产网签合同怎么签
  • 襄阳网站建设多少钱网站建设推广ppt模板
  • 做网站代管理三年WordPress安卓APP不能绑定
  • 网站建设报价单范本如何查看网站建设时间
  • 做a高清视频在线观看网站公司网站是否有必要销售产品
  • 网站推广途径和推广要点的案例讨论wordpress 管理员
  • 网站服务器打不开编程一个最简单游戏代码
  • wordpress跳转到不同分站专业手机app开发公司
  • 丹东市做网站tomcat 网站开发
  • 公司直招的招聘网站官方网站建设报价表
  • wordpress网站打开很慢网络营销优化
  • 做网站需要多少固定带宽html网页制作房地产页面
  • 建设一个班级网站的具体步骤网站导航结构的优化
  • 做淘宝链接的网站wordpress缩略图延时加载
  • 网站建设成都公司哪家好类似wordpress的网站
  • 怎么创建网站页面网络营销心得体会1000字
  • 手机欧美视频网站模板下载 迅雷下载 迅雷下载地址企业百度推广
  • 奇月网络官方网站福建志佳建设工程发展有限公司网站
  • 镇江网站排名优化公司创新设计多功能水杯
  • 网站建设续约合同和田地区建设局网站
  • 宁夏住房和城乡建设厅网站网站广告文案
  • php网站开发 远程做贷款网站
  • 个人博客网站中文模板微信官网网页版
  • 昆明建设银行纪念币预约网站英文网站做百度权重有意义吗
  • 做的网站乱码怎么搞室内设计网站导航
  • 苏州网站建设书生商友华硕路由器wordpress
  • wordpress KeyWords优化长沙网站关键词优化
  • vs做网站怎么把网页改为自适应大小网站打开速度与服务器
  • 网站核验单 没有网站 怎么办失信人被执行人查询
  • 免费网站设计神器新闻发布的网站