request-html获取渲染后的web源码

request-html获取渲染后的web源码,第1张

首先可以先去用requests库访问url来测试一下能不能拿到数据,如果能拿到那么就是一个普通的网页,如果出现403类的错误代码可以在requestsget()方法里加上headers

如果还是没有一个你想要的结果,打印出来 的只是一个框架,那么就可以排除这方面了。就只可能是ajax或者是javascript来渲染的。

就可以按照下图去看一下里面有没有

本次先重点去讲一下关于js来渲染网页的数据爬取,这下面的数据是随机找的,只要是里面想要爬取的数据就行 了。

这里ctrl+f就可以搜索到了说明就是在这个js的文件里面

这个就是真正的数据。

剩下的就是可以利用xpath,beautifulsoup或者pyquery来解析得到的网页源码就可以了。

这里我个人推荐此处用pyquery比较方便简单一些。

启用JavaScript

定义Java接口,暴露方法给JavaScript

绑定一个命名为Android的接口给WebView,

在JavaScript中使用这个接口

点击WebView中的链接的默认行为是启动默认浏览器打开这个URL。如果想要在自己的WebView中打开:

复写WebViewClient的shouldOverrideUrlLoading方法:

canGoBack()如果实际存在用户要访问的网页历史记录,则该方法返回true。同样,您可以使用canGoForward()检查是否存在转发历史记录。如果您不执行此检查,则一旦用户到达历史记录的末尾,goBack()或goForward()什么都不做。

WebSettings用来对WebView做各种设置, 你可以这样获取WebSettings:

<pre><code>

WebSettings webSettings = mWebView getSettings();

</code></pre>

WebSettings的常见设置如下所示:

WebViewClient用来帮助WebView处理各种通知, 请求事件。我们通过继承WebViewClient并重载它的方法可以实现不同功能的定制。主要方法:

WebChromeClient用来帮助WebView处理JS的对话框、网址图标、网址标题和加载进度等。同样地, 通过继承WebChromeClient并重载它的方法也可以实现不同功能的定制, 如下所示:

部分代码如下:

在窗口及WebBrowser创建完以后,写此代码:

WebBrowserOnNewWindow2:=IE1NewWindow2;

给主窗口创建一个方法:

procedure TBrowFormIE1NewWindow2(Sender: TObject; var ppDisp: IDispatch;var Cancel: WordBool);

Var NewForm:TBrowForm;

begin

try

NewForm :=TPopBrowerFormCreate(application);

NewFormWebBrowserOnNewWindow2 :=IE1NewWindow2;//如果在窗口的Oncreate事件

//有此代码,此处就可以省略

ppDisp := NewFormWebBrowserApplication;

NewFormShow;

Cancel:=false;

except

end;

end;

直接是不行的。

1、用c#往webbrowser里面外层网页注入一段javascript,这段javascript的作用是向iframe注入代码。

2、向iframe注入的代码的作用是获取document的源代码;

3、把获取到的源代码返回到外层网页里面的一个对象里。

4、用c#从外层网页取这个源代码。

以上就是关于request-html获取渲染后的web源码全部的内容,包括:request-html获取渲染后的web源码、Android WebView、WPF的WebBrowser如何获取跳转后的页面源码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9532601.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存