作者ireullin (raison detre)
看板PHP
标题Re: [请益] 使用simple_html_dom parsing aspx的网站
时间Fri Jul 12 11:09:16 2013
※ 引述《microtech (microtech)》之铭言:
: ※ 引述《ireullin (raison detre)》之铭言:
: : 我之前是用c# 并且完成过一样功能的东西
: : 但是c# 我是使用一个浏览器元件
: : 然後去控制浏览器的行为来完成目的
: : 在概念上与这个有点不太一样
: 就我知道的,浏览器会去处理http协定、html tag、渲染画面
: 抓网页资料来分析时只需要处理http协定、html tag就好
: 概念上应该是一样的
我概念上的不同指的是
如果是由C#控制浏览器元件去进行网页上的点击的话
那http协定中所有的参数包含post都是由浏览器自行产生的
而目前php的这个做法是post里头的东西都要自己塞
: : 诚如您所说的
: : 我之前其实就已经有使用fiddler来观察过
: : 所以您图片中那些查询特定年月与期数的栏位我其实都有填值了
: : 唯独 __VIEWSTATE/__EVENTVALIDATION 这两个栏位不知道要填什麽
: : 如果填入与之前fiddler中看到的相同的值的话
: : 会得到 "伺服器此时无法处理您的要求" 的内容
: : 所以才想请教大家
: : 针对aspx的网页
: : 这些特别的post栏位
: : 使否有什麽解法
: 如上述所言,aspx网页应该也没有什麽特别的
: 若能符合该网页程式的要求,即可取得资料
: 上一篇回覆是直接使用写好的Java程式(采用的套件是HttpClient4.2.5)
: __VIEWSTATE/__EVENTVALIDATION只要不填值
: 会返回如下内容:
: <html><head><title>Object moved</title></head><body>
: <h2>Object moved to <a href="%2flotto%2fMessage.htm%3faspxerrorpath%3d%2fLotto%2fSuperLotto638%2fhistory.aspx">here</a>.</h2>
: </body></html>
: 重导向至http://www.taiwanlottery.com.tw/lotto/Message.htm?aspxerrorpath=/Lotto/SuperLotto638/history.aspx
: 就是您说的:「伺服器此时无法处理您的要求,请见谅。」
: 实际使用Simple HTML DOM Parser测试,不填值也是出现「伺服器此时无法处理您的要求,请见谅。」
: __VIEWSTATE/__EVENTVALIDATION的值我是使用昨天Charles观察取得的
: 把值填入__VIEWSTATE/__EVENTVALIDATION可以取得欲查询的资料
: 提供您参考看看
我试过将fiddler中看到的__VIEWSTATE/__EVENTVALIDATION的值
重新塞回到Simple HTML DOM Parser
可是不行耶= =a
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.220.71.34