webbrowser的问题,来看看啊

Hotus 2006-03-30 08:31:34
如何在程序中给 http://www.52blog.net/user4/102306/archives/2006/593796.shtml 中的正文进行赋值,昵称,密码,主页,标题等都搞定了,就是不能给这个正文赋值。

谢谢了啊
...全文
186 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
嗷嗷叫的老马 2006-04-02
  • 打赏
  • 举报
回复
帮顶
Hotus 2006-04-02
  • 打赏
  • 举报
回复
都看看啊
蒋晟 2006-03-31
  • 打赏
  • 举报
回复
http://community.csdn.net/HomePage/SmartQuestion.aspx
your question is too vague to be answered.
Hotus 2006-03-31
  • 打赏
  • 举报
回复
jiangsheng(蒋晟.Net[MVP]) 应该怎样处理啊
迈克揉索芙特 2006-03-31
  • 打赏
  • 举报
回复
非常同意楼上两位老大所言。
DHTMLEdit是个很不错的东西。
Hotus 2006-03-31
  • 打赏
  • 举报
回复
还有谁知道啊,分不够再加
Hotus 2006-03-31
  • 打赏
  • 举报
回复
这个我试过的,不行

http://kinda.myboker.com/archives/2006/2006322164555.shtml 这页的正文,我用 WebBrowser1.Document.Forms(1)(5).Value 就可以赋值,但是用这个给 http://www.52blog.net/user1/51/archives/2004/79.shtml 的正文赋值是赋到 combo 里面的,不知道该怎么办了
junki 2006-03-31
  • 打赏
  • 举报
回复
ZOU_SEAFARER 2006-03-31
  • 打赏
  • 举报
回复
看看这个有帮助没有?
由于某些原因,我们可能需要自动登录到论坛回复一些帖子,比如回复编程家园里指定ID号的帖子。用VB如何来实现呢?

VB中有两个很好的东西,一个就是WebBrowser控件,VB甚至可以自动添加网页浏览的form,里面代码都写好了的;第二个就是Microsoft HTML Object Library的引用,这个非常好,可以用来分析页面中Object,从而自动输入文本,或选定指定的Object。

有了这两个工具,实现自动法帖就容易了。用WebBrowser装入浏览页面,在Load_Complete事件里分析装载的页面。如是登录页面则查找Username和Password的输入框和登录按钮,实现自动登录。如是回帖页面也同样可查找到回帖的title和TextArea区实现自动回复。

以下是程序的部分代码,因存在恶意修改的可能,故请大家从学习的角度研究。实验证明此程序的平均回帖速度约为1-6秒,如大家有增加其效率的建议,请回帖探讨。

VB的WebBrowser控件和Microsoft HTML Object Library引用,我以前都没注意过,而且手上也没有资料,网上MSDN居然也没找到参考,因此摸索了数小时才胡乱的写了些代码实现上述功能。不合理之处,敬请指正。



Global UserName As String '用户名
Global Password As String '登录密码
Global Login_Page_Start As String '登录页面
Global Login_Page_Complete As String '登录完成后服务器将自动跳转的页面
Global Jump_Page As String '拟发回复贴的页面
Global Pouring_Article_ID As String '拟发回复的帖子的ID号
Global Pouring_Text As String '拟回复的内容
Global Pouring_title As String '拟回复帖所采用的标题
Global Pouring_Times As Integer '拟回帖次数
Global Reply_Page As String '回复成功后,服务器会自动跳转的页面

Sub Read_Info()
UserName = "XXXXXX"
Password = "XXXXXX"
Login_Page_Start = "http://club.business.sohu.com/"
Login_Page_Complete = "http://club.business.sohu.com/businessmain.php"
Pouring_Article_ID = "XXXXXX"
Jump_Page = "http://club.XXXXXXX.sohu.com/read-XXXX-" & Pouring_Article_ID & "-0-0.html"
Pouring_title = "回复机器人工作中..."
Pouring_Text = "大家好,我是XXXX的回复机器人,请多关照!" & vbCrLf
Pouring_Times = 1 '输入数字太大的话,嘿嘿,后果自负哦
Reply_Page = "http://club.XXXXXXX.sohu.com/reply_art_submit.php"
End Sub


Sub Main()
Call Read_Info
Load form_WebBrowser1
End Sub


Private Sub brwWebBrowser_DownloadComplete()

cboAddress.Text = brwWebBrowser.LocationURL '浏览器的地址栏显示为当前页面

Select Case cboAddress.Text
Case Login_Page_Start ' 当进入登录页面时执行以下程序

' 建议从财经站点登录,因为通行证的那个登录页面比较复杂

'将浏览器内的全部文本赋值为vDoc
Dim vDoc
Set vDoc = brwWebBrowser.Document

Dim i As Integer
Dim form_ID As Integer
form_ID = 0 '登录输入框在第1个表单内

For i = 0 To vDoc.forms(form_ID).length - 1 '搜索第1表单内所有内容

'找到名称为cn和pw的输入框,自动填入
'输入框的名称可以从Html的源代码上看到,
'由程序自行分析页,得到需要输入焦点的Object名称过于复杂,
'因此,以下为简便起见,均为提前手动查找Object标志

With vDoc.forms(form_ID)(i)
If .Name = "cn" Then .value = UserName ' 填入用户名
If .Name = "pw" Then .value = Password ' 填入密码
End With
Next i

' 查找提交表单的按钮,在财经论坛登录页面是一个图片链接
' 图片的属性和前面一样也是通过html源代码看出来的

For i = 0 To vDoc.All.length - 1 '搜索全部文档
With vDoc.All(i)
If UCase$(.tagName) = "INPUT" Then ' 查找Object属性为Input的可输入项
'如是,则判断其是否是制定图片链接,并可点击
If UCase$(.Type) = "IMAGE" And .src = "http://image.club.sohu.com/businessimages/but01.gif" Then
.Select '模拟选择图片
.Click '模拟鼠标单击
End If
End If
End With
Next i

Case Login_Page_Complete '如登录页完成后

'跳转到需回复帖子的页面
brwWebBrowser.Navigate Jump_Page

Case Jump_Page '如是需回复的帖子所在的页面,则开始自动回复处理

'以下的注释掉的代码,不看也罢

Dim p As String
p = Pouring_Text

'Static Count As Integer
'Static Last_Time

' Count = Count + 1
' If Count > Pouring_Times Then Exit Sub

' If Count = 1 Then
' Last_Time = Time
' p = Pouring_Text & "Content A here..."
' Else
' p = Pouring_Text & "Content B here..."
' Last_Time = Time
' End If

Set vDoc = brwWebBrowser.Document

For i = 0 To vDoc.All.length - 1 '搜索全部文档
With vDoc.All(i)
Select Case UCase(.tagName) '根据Object属性跳转

Case "TEXTAREA" '回复帖子用的TEXTAREA
.value = p '输入回复内容

Case "INPUT" '查找Input项
If UCase(.Name) = "title" Then .value = Pouring_title '回帖标题
'查找回帖用图片按钮
If UCase$(.Type) = "IMAGE" And .src = "http://image.club.sohu.com/indexpic/b19.gif" Then
.Select '模拟选择图片
.Click '模拟鼠标单击
End If

End Select
End With
Next i

Case Reply_Page '服务器提示回复完成
brwWebBrowser.Navigate Jump_Page '继续跳回原贴,循环

' Case "http://stop/" '停止执行标记
' Count = Pouring_Times + 1

Case Else 'Nothing to do

End Select

Me.Caption = brwWebBrowser.LocationName
End Sub
ZOU_SEAFARER 2006-03-31
  • 打赏
  • 举报
回复
有一个自动灌水机,是vb代码,你去找找
Hotus 2006-03-31
  • 打赏
  • 举报
回复
TechnoFantasy 2006-03-30
  • 打赏
  • 举报
回复
通过下面的代码:

WebBrowser1.Navigate "http://www.52blog.net/user4/102306/archives/2006/593796.shtml"

While WebBrowser1.Busy

DoEvents
Wend

Debug.Print WebBrowser1.Document.All("oblog_edit").innerhtml

可以获得编辑器(就是WebBrowser1.Document.All("oblog_edit"))至于操作编辑器中的内容可能需要使用楼上提供的链接中提及的DHTMLEdit了。
蒋晟 2006-03-30
  • 打赏
  • 举报
回复
正文不是仅仅一个元素而已,要一个个处理的
参考
http://msdn.microsoft.com/workshop/browser/editing/mshtmleditor.asp
Hotus 2006-03-30
  • 打赏
  • 举报
回复
没人啊

1,486

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧