有没有什么工具可以给某个url批量按照文本文件一行行发post请求呢?
求具体说明
回复内容: 有个几十万行的文本文件,里面逐行有一些信息
有没有什么工具可以给某个url批量按照文本文件一行行发post请求呢?
求具体说明
一个写的比一个短你们这是逼我啊 ... 要比拼 hello world 么 ..?
awk '{ system( curl -d \data= $0 \ http://url ) }' file.txt
awk 单行搞定 ...
有轮子的时候用轮子 ... 没有轮子的时候就自己造一个轮子好了 ...
好吧其实我就是突然有一点点闲时间可以帮你写写代码这样 ...
data_url, curlopt_useragent => 'mozilla/1.22 (compatible; msie 2.0; windows 3.1)', curlopt_returntransfer => 1, curlopt_post => 1, ] );/* something to handle curl result ... */$callback = function( $result ) { return;};/* time for our big looooooop ! */foreach( $text_src as $data ) { /* fill data ... */ curl_setopt( $curl, curlopt_postfields, post_pfx . '=' . $data ); /* and send them out ! */ $callback( curl_exec( $curl ) );}/* you have had a long flight ... time for rest ... */curl_close( $curl );
运行的话需要 php 5.4.0 以上的版本和 curl 扩展 ... 前三行是配置区需要自行修改 ...
另外程序是以牺牲内存为代价提升效率的 ... 因为我觉得说只有几十万行的话应该文件不会太大 ...
程序会把那个文本文档一股脑读进内存 ... 所以如果要处理更多数据的话还要修改 ...
恩 ... 就是这样 ... 看看是不是你想要的效果呢 ..?
这种事情太适合用python来实现了。简单的代码如下:
text = open(__init__.py)import urllibwhile true: line = text.readline() if not line: break params = urllib.urlencode({'arg': line}) f = urllib.urlopen(http://ururl, params) print f.read()text.close()
如果需要的话还可以加入连接超时然后重新发起请求,还可以使用多线程来减少整个的时间。
不太清楚你说的是一次 http 请求还是多次请求。如果需要一次请求发送几十万行的文本数据,中间非常容易断掉。如果是多次请求,每次请求发送一行文本数据,可以试试看 curl 。不同的编程语言都有不同的实现方法,具体请查阅对应语言的官方文档。
nodejs:
linearray = []request = require 'request'linearray.foreach (line)-> request.post line
试试apache的ab,或者类似的siege, http_load
js: for(var i=0;i
import requestsfile = open(text.txt)for text in file.readlines(): data = {data:text} resp = requests.get(url=url, data=data) print resp.textfile.close()
你们为什么一定要比短....
wget -b -q -o /dev/null --post-data= -i urls_file
