Excel 如何验证twitter Id';的URL以了解其当前状态
我刚刚下载了twitter ID的URL来了解它们的状态,ID仍然是Excel 如何验证twitter Id';的URL以了解其当前状态,excel,vba,twitter,Excel,Vba,Twitter,我刚刚下载了twitter ID的URL来了解它们的状态,ID仍然是活动的,被阻止的,暂停的,或者被删除的。我正在使用下面的VBA代码,但它不能像我上面提到的那样工作 Public PageSource As String Public PageSourceOpt As Integer Public httpRequest As Object Function GetURLRedirect(ByVal Cell As Range, Optional AllowRedirects As Bool
活动的
,被阻止的
,暂停的
,或者被删除的
。我正在使用下面的VBA代码,但它不能像我上面提到的那样工作
Public PageSource As String
Public PageSourceOpt As Integer
Public httpRequest As Object
Function GetURLRedirect(ByVal Cell As Range, Optional AllowRedirects As Boolean)
Const WinHttpRequestOption_EnableRedirects = 6
Dim URL As String
URL = Cell.Text
If httpRequest Is Nothing Then
On Error Resume Next
Set httpRequest = CreateObject("WinHttp.WinHttpRequest.5.1")
If httpRequest Is Nothing Then
Set httpRequest = CreateObject("WinHttp.WinHttpRequest.5")
End If
Err.Clear
On Error GoTo 0
End If
' Control if the URL being queried is allowed to redirect.
httpRequest.Option(WinHttpRequestOption_EnableRedirects) = AllowRedirects
' Clear any pervious web page source information
PageSource = ""
' Add protocol if missing
If InStr(1, URL, "://") = 0 Then
URL = "http://" & URL
End If
' Launch the HTTP httpRequest synchronously
On Error Resume Next
httpRequest.Open "GET", URL, False
If Err.Number <> 0 Then
' Handle connection errors
Cell.Offset(0, 1) = Err.Description
Err.Clear
Exit Function
End If
On Error GoTo 0
' Send the http httpRequest for server status
On Error Resume Next
httpRequest.Send
httpRequest.WaitForResponse
If Err.Number <> 0 Then
' Handle server errors
PageSource = "Error"
Cell.Offset(0, 1) = Err.Description
Err.Clear
Else
' Show HTTP response info
Cell.Offset(0, 1) = httpRequest.Status & " - " & httpRequest.StatusText
If httpRequest.Status > 300 And httpRequest.Status < 400 Then
Cell.Offset(0, 2) = httpRequest.GetResponseHeader("Location")
End If
' Save the web page text
If PageSourceOpt <> 0 Then
PageSource = httpRequest.ResponseText
Cell.Offset(0, 3) = PageSource
Cell.Offset(0, 3).ClearFormats
End If
End If
On Error GoTo 0
End Function
Sub ValidateURLs()
Dim Cell As Range
Dim Rng As Range
Dim RngEnd As Range
Dim Status As String
Dim Wks As Worksheet
Set Wks = ActiveSheet
Set Rng = Wks.Range(TextBox1.Text)
Set RngEnd = Wks.Cells(Rows.Count, Rng.Column).End(xlUp)
If RngEnd.Row < Rng.Row Then Exit Sub Else Set Rng = Wks.Range(Rng, RngEnd)
Cells(3, 5) = RngEnd.Row - 2
For Each Cell In Rng
GetURLRedirect Cell
DoEvents
Cells(5, 5) = Cell.Row - 2
Next Cell
End Sub
Private Sub CheckBox1_Click()
PageSourceOpt = CheckBox1.Value
End Sub
Private Sub CommandButton1_Click()
ValidateURLs
End Sub
Private Sub TextBox1_Change()
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
TextBox1.Text = ActiveCell.Address
End Sub
请指导我哪里的代码工作不好。我想要四种状态
我希望这是有道理的。谢谢我用做了一个快速的URL测试,看起来Twitter检查了浏览器的用户代理。因此,由于Postman默认使用
用户代理:PostmanRuntime/7.26.8
Twitter会响应400错误请求,并且“不再支持此浏览器”
如果不设置任何用户代理(如在VBA中所做的),则会发生完全相同的情况
现在,您可以添加一个伪用户代理,如用户代理:Mozilla/5.0(兼容;Googlebot/2.1+http://www.google.com/bot.html)
添加到标题中。然后你得到一个200 OK
,Twitter回应“JavaScript在你的浏览器中被停用”
所以,也许这仍然不是你想要的(我不知道如何在这里欺骗Twitter),但实际上你至少现在知道那里发生了什么
我建议使用Postman之类的工具测试和构建请求,因为它更容易调查响应
因此,实际上代码工作正常,但问题是Twitter如何处理您的请求。因为它显然会检查是否有正在运行的JavaScript,所以这只会在浏览器中起作用
这个问题的正确解决方案可能是使用Twitter提供的官方API。我对URL进行了快速测试,看起来Twitter检查了浏览器的用户代理。因此,由于Postman默认使用用户代理:PostmanRuntime/7.26.8
Twitter会响应400错误请求,并且“不再支持此浏览器”
如果不设置任何用户代理(如在VBA中所做的),则会发生完全相同的情况
现在,您可以添加一个伪用户代理,如用户代理:Mozilla/5.0(兼容;Googlebot/2.1+http://www.google.com/bot.html)
添加到标题中。然后你得到一个200 OK
,Twitter回应“JavaScript在你的浏览器中被停用”
所以,也许这仍然不是你想要的(我不知道如何在这里欺骗Twitter),但实际上你至少现在知道那里发生了什么
我建议使用Postman之类的工具测试和构建请求,因为它更容易调查响应
因此,实际上代码工作正常,但问题是Twitter如何处理您的请求。因为它显然会检查是否有正在运行的JavaScript,所以这只会在浏览器中起作用
此问题的正确解决方案可能是使用Twitter提供的官方API。您是编写此代码还是从某个地方下载的?@SiddharthRout是的,我是在网上找到的,我正在努力验证我的好友列表。您是编写此代码还是从某个地方下载的?@SiddharthRout是的,我是在网上找到的,我正在努力验证我的朋友列表。
https://twitter.com/Adam_Creighton/status/728384693255602176.html
https://twitter.com/Adam_Creighton/status/728384180082479104.html
https://twitter.com/Adam_Creighton/status/728382362610868228.html
https://twitter.com/Adam_Creighton/status/728337281749110784.html
https://twitter.com/Adam_Creighton/status/728329768693731328.html
https://twitter.com/Adam_Creighton/status/728114035770597377.html
https://twitter.com/Adam_Creighton/status/728055476353519616.html
https://twitter.com/Adam_Creighton/status/727989216852869121.html
https://twitter.com/Adam_Creighton/status/727694698299564033.html
https://twitter.com/Adam_Creighton/status/727679014454747136.html
https://twitter.com/Adam_Creighton/status/727633679300747264.html
https://twitter.com/Adam_Creighton/status/727632901416714240.html
https://twitter.com/Adam_Creighton/status/727273627729567744.html
https://twitter.com/Adam_Creighton/status/727247264616341508.html
https://twitter.com/Adam_Creighton/status/727084719641268224.html
https://twitter.com/Adam_Creighton/status/726896995084836864.html
https://twitter.com/Adam_Creighton/status/726540699231875073.html
https://twitter.com/Adam_Creighton/status/726206873746034688.html
https://twitter.com/Adam_Creighton/status/725886004574351363.html
https://twitter.com/Adam_Creighton/status/725841017534963712.html
https://twitter.com/Adam_Creighton/status/725804881869570048.html
https://twitter.com/Adam_Creighton/status/725803040050020353.html
https://twitter.com/Adam_Creighton/status/725671578822807556.html
https://twitter.com/Adam_Creighton/status/725657863989784576.html
https://twitter.com/Adam_Creighton/status/725657863989780480.html
https://twitter.com/Adam_Creighton/status/725233500169719808.html
https://twitter.com/Adam_Creighton/status/725164262893584389.html
https://twitter.com/Adam_Creighton/status/724729328026558464.html
https://twitter.com/Adam_Creighton/status/724384631286419456.html
https://twitter.com/Adam_Creighton/status/723647669625737216.html
https://twitter.com/Adam_Creighton/status/723645534729175041.html
https://twitter.com/Adam_Creighton/status/723271156623499264.html
https://twitter.com/Adam_Creighton/status/723056630829477888.html
https://twitter.com/Adam_Creighton/status/722902550438019072.html
https://twitter.com/Adam_Creighton/status/722549303340740608.html
https://twitter.com/Adam_Creighton/status/722544334642356225.html
https://twitter.com/Adam_Creighton/status/722297007256154112.html
https://twitter.com/Adam_Creighton/status/722237965745848320.html
https://twitter.com/Adam_Creighton/status/1350293980911607811.html
https://twitter.com/Adam_Creighton/status/1350213537965117440.html
https://twitter.com/Adam_Creighton/status/1350210436168204289.html
https://twitter.com/Adam_Creighton/status/1349963632210182145.html
https://twitter.com/Adam_Creighton/status/1349930349627801600.html
https://twitter.com/Adam_Creighton/status/1349916656609316871.html
https://twitter.com/Adam_Creighton/status/1349901209054838785.html
https://twitter.com/Adam_Creighton/status/1349900058196541442.html
https://twitter.com/Adam_Creighton/status/1349864288127598592.html
https://twitter.com/Adam_Creighton/status/1349849317821988865.html
https://twitter.com/Adam_Creighton/status/1349848716761460737.html
https://twitter.com/Adam_Creighton/status/1349830160707534850.html
https://twitter.com/Adam_Creighton/status/1349829937478320129.html
https://twitter.com/Adam_Creighton/status/1349693266359324673.html
https://twitter.com/Adam_Creighton/status/1349691888094220295.html
https://twitter.com/Adam_Creighton/status/1349685869771333632.html
https://twitter.com/Adam_Creighton/status/1349490785373229057.html
https://twitter.com/Adam_Creighton/status/1349487954113093632.html
https://twitter.com/Adam_Creighton/status/1349474349149954049.html
https://twitter.com/Adam_Creighton/status/1349333840553152517.html
https://twitter.com/Adam_Creighton/status/1349323821929484290.html
https://twitter.com/Adam_Creighton/status/1349233656926064641.html
https://twitter.com/Adam_Creighton/status/1348909750948282370.html
https://twitter.com/Adam_Creighton/status/1348893075855183875.html
https://twitter.com/Adam_Creighton/status/1348837433303986177.html
https://twitter.com/Adam_Creighton/status/1348782225618137090.html
https://twitter.com/Adam_Creighton/status/1348758112480546816.html
https://twitter.com/Adam_Creighton/status/1348748262371561472.html
https://twitter.com/Adam_Creighton/status/1348582349454204931.html
https://twitter.com/Adam_Creighton/status/1348578956417503232.html
https://twitter.com/Adam_Creighton/status/1348570633102188544.html
https://twitter.com/Adam_Creighton/status/1348538375788060675.html
https://twitter.com/Adam_Creighton/status/1348535908576894976.html
https://twitter.com/Adam_Creighton/status/1348532398632275970.html
https://twitter.com/Adam_Creighton/status/1348527916167032834.html
https://twitter.com/Adam_Creighton/status/1348523333776601088.html
https://twitter.com/Adam_Creighton/status/1348415822176292865.html
https://twitter.com/Adam_Creighton/status/1348071704547840003.html
https://twitter.com/Adam_Creighton/status/1348053707015901187.html
https://twitter.com/Adam_Creighton/status/1194511912790151173.html
https://twitter.com/Adam_Creighton/status/1142998150505828353.html