有一个带有城市电话代码的页面:
它有一个按城市名称搜索代码的表格:
<form method="get" action="/phones/ru/search"> <label for="city">Узнать код по городу:</label> <input type="text" id="city" name="city" style="width: 120px;"/> <label for="phonenumber">или номеру телефона:</label> <input type="text" id="phonenumber" name="phonenumber" style="width: 120px;" placeholder="+7 (___) ___-____" value=""/> <input type="submit" value="Найти" class="btn" style="width: 80px;"/> <input type="hidden" name="part" value="ru"/> </form>
使用“手动控制”,也就是从站点,在“城市”字段中输入城市名称,按下“查找”按钮,我们会得到一个带有该城市代码的页面。我尝试通过以下方式获取带有这个特定城市的代码的页面内容,但结果是一个页面相当于搜索错误页面。
Dim http As New WinHttp.WinHttpRequest
Dim txt As String
Dim timeout As Integer
Dim request As String
timeout = 5000
http.SetTimeouts timeout, timeout, timeout, timeout
request = "{ ""city"": """ & "Москва" & """ }" 'Ну это скорее всего от безнадеги чисто попытался.
http.Open "POST", "http://kodifikant.ru/phones/", False
http.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
http.send request
WriteToFile "C:\temp\phonecode.html", http.ResponseText
实际要求:
请告诉我我有什么问题。
您需要在代码中再声明一个函数来对城市名称进行编码。URLEncode,你可以使用其中的任何一个,不幸的是没有办法检查哪个在工作。
https://stackoverflow.com/questions/218181/how-can-i-url-encode-a-string-in-excel-vba