如何使用RoboBrowser保存完整的ASPX网页?
保存RoboBrowser抓取的ASPX页面到本地
提交表单跳转页面后,你可以通过RoboBrowser的response对象获取页面HTML源码,再写入本地文件,具体操作如下:
完整代码示例
from robobrowser import RoboBrowser url = "https://apps.summitcountyco.gov/NOVArchiveViewer/default.aspx" browser = RoboBrowser(history=True) browser.open(url) # 填写并提交表单 form = browser.get_form(id='aspnetForm') form['ctl00$pageBaseContent$txtPropertySchedule'].value = '1501134' browser.submit_form(form) # 将页面保存到本地 with open('viewer_1501134.html', 'w', encoding='utf-8') as file: file.write(browser.response.text)
关键说明
browser.response.text会返回当前页面的完整HTML源码,这就是你需要保存的内容- 用
encoding='utf-8'打开文件,能避免页面中出现非ASCII字符时产生乱码 - 可以根据编号动态命名文件(比如
f'viewer_{property_id}.html'),方便区分不同编号对应的页面
如果后续发现页面存在动态加载的内容(比如AJAX渲染的部分),RoboBrowser这类无内核爬虫无法捕获,那时可以考虑使用Selenium这类带真实浏览器的工具,但从你当前的情况看,上述方法足以满足需求。
内容的提问来源于stack exchange,提问作者Skibumdon
相关产品推荐
相关产品推荐

