.net 获取网页内容并对其进行处理(打印或保存到文件)
我是一名房地产估价师,对vb和.net有一些有限的经验。我有一项任务需要执行,这项任务要求我访问conuty鉴定人网站,打印当前公共记录信息的副本(到bmp或jpg图像或直接到默认打印机),每次打印几页到1000多条记录 我做这部分工作并没有真正的收入,所以他们不在乎我花几分钟还是几个小时来做这件事。我认为一定有办法使这个过程自动化,所以上周我开始搜索和测试代码片段 到目前为止,我已经打开了IE的一个实例;导航到所需的页面;查找AcctNo的表单elemet;填写并提交表格。返回的页面已格式化为屏幕显示,不适合发送到打印机。然而,有一个链接,当点击时返回一个为pinting格式的页面。不利的一面是,它还会打开打印对话框,然后必须处理该对话框。我可以通过多种方法单击“打印”按钮或“取消”按钮,这会给我留下一个文件,该文件可以发送到打印机,也可以放在屏幕上 问题是:.net 获取网页内容并对其进行处理(打印或保存到文件),.net,html,vb.net,.net,Html,Vb.net,我是一名房地产估价师,对vb和.net有一些有限的经验。我有一项任务需要执行,这项任务要求我访问conuty鉴定人网站,打印当前公共记录信息的副本(到bmp或jpg图像或直接到默认打印机),每次打印几页到1000多条记录 我做这部分工作并没有真正的收入,所以他们不在乎我花几分钟还是几个小时来做这件事。我认为一定有办法使这个过程自动化,所以上周我开始搜索和测试代码片段 到目前为止,我已经打开了IE的一个实例;导航到所需的页面;查找AcctNo的表单elemet;填写并提交表格。返回的页面已格式化为
谢谢使用基于GUI的宏录制软件(例如,Windows),这听起来很容易解决(无论如何比编程方法更容易)。我能看到的唯一困难是找到正确的表单元素和打印链接 您可以尝试用同样的方式获取URL,而不是通过编程方式单击指向打印页面的链接。如果我还记得的话,您可以通过web浏览器上的
Document
属性检索该链接,并使用DOM工具查找该链接,然后获取HREF属性
获得链接的URL后,使用HttpClient
将该URL下载到文件(或内存流)中。将文件加载到内存中(除非它在内存流中,在这种情况下它已经在内存中)并删除打印机的脚本(或者通过替换
禁用所有脚本)。您可能需要执行更多的逻辑,因为大多数脚本标记中都有HTML注释标记
完成所有处理后,将其作为临时文件保存到磁盘,并将浏览器控件导航到该文件
如果存在无法加载/工作的图像或链接,请查看在处理文件时向文件添加
标记。这将修复URL
希望这有帮助!常规(屏幕显示)和可打印文档的URL之间可能存在某种模式。例如,它们可能在URL中使用相同的文档ID号 一旦知道了该模式,就可以计算可打印的URL,然后将加载该URL的结果保存到文件中
import mechanize, re
browser = mechanize.Browser()
browser.open("http://google.com")
#find and follow a link with the text "About" in it
about_page = browser.follow_link(text_regex = re.compile("About"))
#open a local html file to save to
output_file = open("about.html","w")
for line in about_page.read():
output_file.write(line + '\n')
output_file.close()
只需确保检查“未找到页面”或其他错误(破解URL以了解他们的错误页面是什么样子),这样,如果他们更改可打印URL的格式,您将收到警告,而不是盲目保存错误页面:)您试图做的就是所谓的web抓取。虽然我不是一个VB的家伙(对不起!),但通常我会像这样分解网页抓取程序-
import mechanize, re
browser = mechanize.Browser()
browser.open("http://google.com")
#find and follow a link with the text "About" in it
about_page = browser.follow_link(text_regex = re.compile("About"))
#open a local html file to save to
output_file = open("about.html","w")
for line in about_page.read():
output_file.write(line + '\n')
output_file.close()
我知道你不懂Python,但它是最容易学习的语言之一,似乎比VB更适合这个任务。另外,StackOverflow上的很多人都会说这句话-将~14k标签与~5k标签进行比较。也许我可以简化问题。。一旦我在web中有了一个文档。文档是否可以通过编程方式将其发送到打印机处理PrintDocument的printPage事件,以调整图形大小并发送到文件或打印机?我想通过研究我可以做到,但我还没有找到一个解决web.document的例子。除了通过宏实现自动化之外:我不知道。让我们看看其他的答案是什么…+1的python方法,并提出了关键字“网页抓取”,以推动进一步的谷歌搜索。