Javascript 在URL不变的网站上使用自动刮取

Javascript 在URL不变的网站上使用自动刮取,javascript,asp.net,node.js,Javascript,Asp.net,Node.js,我有一个问题,我正在尝试使用用于chrome的webscraper.io扩展来抓取一个站点。它不会工作,因为URL不会更改,但在刷新浏览器时会重置回搜索输入页面 我以前在nodeJs中尝试过,但是站点已经过重新设计,而且URL从未更改,因此我无法设置在nodeJs中进行抓取的URL起点。我查看了chrome控制台的网络选项卡,发现表单数据选择正确(年份、街道名称和类似名称),但我不知道完整地址 这里有一个地址和邮政编码,请尝试 URL 年份和地址2016年后 有人能告诉我如何手工把地址拼在一起吗

我有一个问题,我正在尝试使用用于chrome的webscraper.io扩展来抓取一个站点。它不会工作,因为URL不会更改,但在刷新浏览器时会重置回搜索输入页面

我以前在nodeJs中尝试过,但是站点已经过重新设计,而且URL从未更改,因此我无法设置在nodeJs中进行抓取的URL起点。我查看了chrome控制台的网络选项卡,发现表单数据选择正确(年份、街道名称和类似名称),但我不知道完整地址

这里有一个地址和邮政编码,请尝试

URL

年份和地址2016年后


有人能告诉我如何手工把地址拼在一起吗

首先让我回答一下为什么刮板不起作用,网站的想法是他们将数据发布到
/SelectRecord.asp
,然后返回js,其中包含附加到dom中的数据,您可以看到结果。不幸的是,这种行为是这个网站特有的

如何清理这些网站 方法1 使用
selinium
发布表单数据并从DOM中刮取结果。这是一个较长的过程,但在复杂的web应用程序中是可靠的

方法2 考虑到您现有的站点,我注意到站点上的post参数是

TaxYear=2016
stnum
stname=Post+Oak
searchtype=str
以上是我从你上面的询问中得到的。结果是

....
<td align="left" valign="center" nowrap>111 POST OAK # 286</td>
<td valign="center">77024</td>
<td valign="center">0</td>
<td valign="center">$84,840</td>
<td valign="center">$84,840</td>
....
。。。。
111后橡木#286
77024
0
$84,840
$84,840
....
我刚刚粘贴了完整代码的一部分


现在,您所要做的就是使用您选择的参数发出一个
curl
请求,并删除更简单的XML。

首先让我回答一下刮片器不起作用的原因,该网站的理念是,他们将数据发布到
/SelectRecord.asp
,然后返回包含数据的js,并将其附加到dom中,您可以看到结果。不幸的是,这种行为是这个网站特有的

如何清理这些网站 方法1 使用
selinium
发布表单数据并从DOM中刮取结果。这是一个较长的过程,但在复杂的web应用程序中是可靠的

方法2 考虑到您现有的站点,我注意到站点上的post参数是

TaxYear=2016
stnum
stname=Post+Oak
searchtype=str
以上是我从你上面的询问中得到的。结果是

....
<td align="left" valign="center" nowrap>111 POST OAK # 286</td>
<td valign="center">77024</td>
<td valign="center">0</td>
<td valign="center">$84,840</td>
<td valign="center">$84,840</td>
....
。。。。
111后橡木#286
77024
0
$84,840
$84,840
....
我刚刚粘贴了完整代码的一部分


现在,您所要做的就是使用您选择的参数发出一个
curl
请求,并删除更简单的XML。

观察Chrome开发工具中的网络选项卡,看起来实际请求是针对
http://public.hcad.org/records/SelectRecord.asp
,附带一些表单数据。我试图亲自从邮递员那里发送一个请求,但它给出了一个错误页面,但这应该是朝着正确方向迈出的一步。@ChemicalRocketeer不知道你为什么会出错,我得到了正确的响应。也许你忘了添加诸如
用户代理
等内容。@georoot我确实从devtools窗口复制了标题,但我没有注意到我必须打开拦截器才能让其中一些标题正常工作。经过进一步的测试,我现在得到了一个“暂时不可用”的错误页面,尽管实际页面仍然正常工作。观察Chrome Devtools中的网络选项卡,看起来实际请求是针对
http://public.hcad.org/records/SelectRecord.asp
,附带一些表单数据。我试图亲自从邮递员那里发送一个请求,但它给出了一个错误页面,但这应该是朝着正确方向迈出的一步。@ChemicalRocketeer不知道你为什么会出错,我得到了正确的响应。也许你忘了添加诸如
用户代理
等内容。@georoot我确实从devtools窗口复制了标题,但我没有注意到我必须打开拦截器才能让其中一些标题正常工作。经过进一步测试,我现在得到一个“暂时不可用”的错误页面,即使实际页面仍然正常工作。我将尝试selenium方法和方法2…我没有使用selenium的经验…我正在使用windows机器,因此如果您有任何指针,请发布我将尝试selenium方法和方法2…我没有使用selenium的经验…我正在使用windows机器,因此如果您有任何指针请邮寄