一般方法是这样的:
>使用像Fiddler这样的工具,找出浏览器发出的HTTP请求,以便获取您正在寻找的数据.
>使用WebClient获取所需的HTTP请求.
请查看我对this question的回答,了解有关HTML屏幕抓取的更多信息,以获取更多详细信息以及如何解决可能遇到的各种问题.
对于上面的#1,这里是如何使用fiddler来理解特定请求是如何进行的:
首先,找到您关心的请求(包含您在响应中所需数据的请求).您可以通过在fiddler的左窗格中双击它并查看右下方窗格中的“text fiew”选项卡来检查每个请求来执行此操作.您还可以使用CTRL F查找多个请求中的内容,但某些请求已被压缩,因此您需要确保在发出请求之前在工具栏中选择“自动编码”按钮,以确保您可以进行文本搜索他们所有人.
找到所需的请求后,在Fiddler中双击它,然后在右上方的窗格中选择“标题”选项卡.那些是发送的标题.如果您的客户端将这些标头正好发送到服务器,您应该返回相同的数据.但通常不需要所有标题,因此您需要确定需要哪些标题.您可以使用右上方窗格中的Fiddler的Request Builder选项卡执行此操作.选择该选项卡,然后将数据请求从左窗格拖到请求构建器上.然后提交请求以验证它是否返回正确的结果.然后开始一次删除标题,一个标题,直到请求停止工作 – 您知道该标题是必需的.尝试删除每个标题,直到找到所需的标题.
然后,您需要编写代码以生成正确的标头.不要担心Host:标头,它会自动为您生成.对于Cookie:标头,您需要使用CookieContainer类生成它.对于其他标题(例如UserAgent:,Accept:等等,您通常可以复制它们并按原样将它们添加到您的请求中.