求解form表单action="/"相关问题

marco0631 2016-11-25 11:29:14
由于最近在搞一个网络爬虫,遇到某网页上的form表单action="/",想用curl模拟post请求。怎么知道这个web项目的根?

比如:
站点是www.abc.com/a.php


<form action="b.php" method="POST">
<input type="text" name="keyword"></input>
<input type="submit"></input>
</form>


我用curl命令: curl -d "keyword=xxx" "www.abc.com/b.php"应该就可以了,如果a和b同在某目录下。

但如果form是这样的:

<form action="/" method="POST">
<input type="text" name="keyword"></input>
<input type="submit"></input>
</form>


应该怎么替换curl命令的URL呢? 求解。。 谢谢
...全文
204 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
marco0631 2016-11-30
  • 打赏
  • 举报
回复
引用 3 楼 dcxy0 的回复:
post请求,你一般可以在网页上点一下,然后看到地址吧?一般post也不会请求首页(至少我是没这么做过。。),而且你写爬虫,肯定知道首页啊,"/"就是首页。
是的,我之前以为我理解错了,因为那个网页表单提交确实是和主页在同一个页面上。 但我curl命令发get请求模拟访问页面是ok的。 发post请求尝试直接表单提交就报HTTP 403,有可能是做了cookies, session之类的验证防止外部通过第三方代码实现提交或者防止恶意攻击吧。。 没细看, 还是谢谢你
JPF1024 2016-11-25
  • 打赏
  • 举报
回复
post请求,你一般可以在网页上点一下,然后看到地址吧?一般post也不会请求首页(至少我是没这么做过。。),而且你写爬虫,肯定知道首页啊,"/"就是首页。
marco0631 2016-11-25
  • 打赏
  • 举报
回复
引用 1 楼 slwsss 的回复:
相当于 www.abc.com/
这个应该指的是web应用的根路经吧?如果是apache服务器应该有一个对应的默认根文件,比如index.php, index.html。我的理解是服务器上设置某个目录为web应用的根,比如windows的c:\\webRootDir文件夹或linux的/usr/webRootDir目录。那么www.abc.com/指的应该是这个目录吧? 若访问静态资源而且所有文件不分层都在同一级目录下,如图片叫pic.jpg,文件层次如下: -webRootDir --pic.jpg --config.xml --welcome.php 那么路经就是www.abc.com/pic.jpg。如果pic.jpg存在另一个字目录下如: -webRootDir --subDir ---pic.jpg --config.xml --welcome.php 那么路经应该就是www.abc.com/subDir/pic.jpg吧? 而apache服务器默认的根文件会默认指向index.php index.html这些, 也就是如果index.html存在的话www.abc.com/ 的效果和 www.abc.com/index.html等同效果, 那如果index.html并不存在,apache的设置也被做过修改。 怎么能知道真正的默认根指向是哪个文件呢?
slwsss 2016-11-25
  • 打赏
  • 举报
回复
相当于 www.abc.com/

61,115

社区成员

发帖
与我相关
我的任务
社区描述
层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。
社区管理员
  • HTML(CSS)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧