如果还是没有一个你想要的结果,打印出来 的只是一个框架,那么就可以排除这方面了。就只可能是ajax或者是javascript来渲染的。
就可以按照下图去看一下里面有没有
本次先重点去讲一下关于js来渲染网页的数据爬取,这下面的数据是随机找的,只要是里面想要爬取的数据就行 了。
这里ctrl+f就可以搜索到了说明就是在这个js的文件里面
这个就是真正的数据。
剩下的就是可以利用xpath,beautifulsoup或者pyquery来解析得到的网页源码就可以了。
这里我个人推荐此处用pyquery比较方便简单一些。
使用WebBrowser控件获取网页源码的方法,大多数的人都是使用以下的方法获取:(WebBrowser1.Document as IHtmlDocument2).body.outerHtml
这种方法的美中不足就是只能获取网页<body>与</body>之间的网页源码,而<body>之外如<head>部分的网页源码就获取不到了,下面是某大牛老师给大家分享的方法,可参考:
procedure TForm1.Button1Click(Sender: TObject)
var
ole_index, oleObj: OleVariant
i: integer
begin
if WebBrowser1.Busy then Exit //网页加载中,退出。
Memo1.Lines.Clear
//获取主框架网址及网页源码
Memo1.Lines.Add(WebBrowser1.OleObject.document.url)
Memo1.Lines.Add(WebBrowser1.OleObject.document.documentElement.outerHTML)
Memo1.Lines.Add(' ')Memo1.Lines.Add(' ')//添加空行
//循环获取每一个子框架网址及网页源码
for i := 0 to WebBrowser1.OleObject.document.frames.length - 1 do
begin
ole_index := i
oleObj := WebBrowser1.OleObject.document.frames.item(ole_index)
Memo1.Lines.Add(oleObj.document.url)
Memo1.Lines.Add(oleObj.document.documentElement.outerHtml)
Memo1.Lines.Add(' ')Memo1.Lines.Add(' ')//添加空行
end
end
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)