2

我正在使用一个包含多个字段、一些文本和几个隐藏的表单。问题是,当我查看 mechanize.Browser 对象“看到”的字段列表时,缺少一些重要的隐藏字段,但不是全部。根据这个类似问题的最流行的答案,这是因为网页正在查询用户代理字符串。对我来说不是这样,我知道这有两个原因:

  1. 当我将“抓取”的表单保存到文件时,我可以看到缺少的字段,并且
  2. 正如该解决方案所建议的那样,我已经更改了浏览器对象的用户代理字符串,但这对我没有帮助。

对我有帮助的是该问题的第二受欢迎的解决方案,但我不明白为什么会这样。为什么 Mechanize 会“看到”一些隐藏的表单字段而不是其他字段,需要手动输入缺失的字段?

4

1 回答 1

1

诚然,我不知道您实际上想对您做什么 - 但作为多年来一直在抓取网页的人,我必须给您一些不请自来的建议。我提前道歉。

我强烈建议您过渡到可以处理 javascript 的东西。Mechanize 是一个很棒的模块,它在过去非常有用,但是网络上全是闪烁的灯光、CSS 和跳舞的婴儿,你必须点击。

我这么说的原因是,“隐藏”字段可能是一些花哨的东西,或者它们可能是 javascript 修改的形式,你会浪费数小时试图逆向工程它是如何工作的,只是将方形钉锤入圆孔。

我建议的现代但不幸的是 Mechanize 的重量级替代品是:

于 2012-11-12T20:24:41.727 回答