我来自科学计算和数字运算的世界。
我正在尝试与互联网进行交互以编译数据,所以我没有必要。其中一项任务是在Marriott.com上自动填写搜索内容,以便我可以看到最优惠的价格。
我尝试过像
这样简单的事情import urllib
import urllib2
url = "http://marriott.com"
values = {'Location':'New York'}
data = urllib.urlencode(values)
website = urllib2.Request(url, data)
response = urllib2.urlopen(website)
stuff = response.read()
f = open('test.html','w')
f.write(stuff)
我的问题如下:
答案 0 :(得分:1)
您需要阅读并分析相关方的HTML代码。每个浏览器都有适当的工具来反省网站的DOM,分析网络流量和请求。
通常,您希望使用 mechanize 模块执行与网站的自动化互动。鉴于这种情况在每种情况下均有效,因此无法保证。如今许多网站都使用AJAX或更复杂的客户端编程,这使得很难使用Python“模仿”人类用户。
除此之外:mariott.com网站不包含输入字段“位置”...所以你猜测URL参数并分析了它们的形式和功能?
答案 1 :(得分:1)
我要检查的是使用Web调试代理来查看您发送的请求 首先使用浏览器发送实际请求,并将该请求与脚本发送的请求进行比较。尝试使两个请求匹配
我使用的是Charles Proxy
另一种方法是查看您保存的html文件(在本例中为test.html
)并在浏览器中查看并将其与实际请求响应进行比较
要查找字典中应包含的内容,请查看页面的页面来源,并找出您要填写的表单的名称。在您的情况下,"location"
实际上应该是"destinationAddress.destination"
这是一张图片:
因此,请查看HTML代码以获取表单的名称,这应该是字典中的内容。我知道Google Chrome和Mozilla Firefox都有工具来查看html的结构(在我使用Google Chrome中的inspect元素的图片中)
有关urllib2的更多信息,请阅读here
我真的希望这会有所帮助:)
答案 2 :(得分:1)