有没有一种直接的方法来使用Mechanize 2.3设置自定义标头?
我试过以前的解决方案,但得到:
$agent = Mechanize.new
$agent.pre_connect_hooks << lambda { |p|
p[:request]['Referer'] = 'https://wwws.mysite.com/cgi-bin/apps/Main'
}
# ./mech.rb:30:in `<main>': undefined method `pre_connect_hooks' for nil:NilClass (NoMethodError)
Run Code Online (Sandbox Code Playgroud) 在动态网页上,我不知道前面匹配元素的数量,所以我不知道要使用哪个索引#.
watir-webdriver是否提供了一种访问LAST匹配元素的方法,而不是默认情况下?
有问题的HTML形成日历控件
<table border="0" class="body-style">
<tbody>
<tr>
<td width="27" align="right"><b>Sun</b></td>
<td width="27" align="right"><b>Mon</b></td>
<td width="27" align="right"><b>Tue</b></td>
<td width="27" align="right"><b>Wed</b></td>
<td width="27" align="right"><b>Thu</b></td>
<td width="27" align="right"><b>Fri</b></td>
<td width="27" align="right"><b>Sat</b></td></tr>
<tr>
<td align="right"><p class="end-of-weekday-style">Â 1Â </p></td>
<td align="right"><p class="end-of-weekday-style">Â 2Â </p></td>
<td align="right"><p class="end-of-weekday-style">Â 3Â </p></td>
<td align="right"><p class="end-of-weekday-style">Â 4Â </p></td>
<td align="right"><p class="end-of-weekday-style">Â 5Â </p></td>
<td align="right"><p class="end-of-weekday-style">Â 6Â </p></td>
<td align="right"><p class="end-of-weekday-style">Â 7Â </p></td></tr>
<tr>
<td align="right"><p class="end-of-weekday-style">Â 8Â </p></td>
<td align="right"><p class="end-of-weekday-style">Â 9Â </p></td>
<td align="right"><p class="end-of-weekday-style">Â 10Â </p></td>
<td align="right"><p class="end-of-weekday-style">Â 11Â </p></td>
<td align="right"><p class="end-of-weekday-style">Â 12Â </p></td>
<td align="right"><a class="current-day-style selected-day-style" onmousemove="window.status=" "" onmouseout="window.status=" "" title="" href="javascript:dateSelected=13;closeCalendar();doOtherFunctions();">Â 13Â </a></td>
<td align="right"><p class="end-of-weekday-style">Â 14Â </p></td></tr> …
Run Code Online (Sandbox Code Playgroud) 任何人都知道一种简单的方法来立即退出bash中while/until循环的当前迭代,但是继续循环中的下一次迭代?
我的基本结构是:
sort -u -r -g -k 5 -t ' ' $filteredtoptrigsf |\
while read -a linA; do
stuff
morestuff
[[ $smthStinks -eq 1 ]] && break
[[ ${linA[*]} == $onlyThisLineStinks ]] && done
lotsaSlowProcessing
doSmthDangerous
done
Run Code Online (Sandbox Code Playgroud)
在第一次[[...]]测试中,由于某些计算条件,我肯定希望突破while循环并且永远不会回来.
在第二个[[]]测试中,满足一个条件,该条件应该只突破循环一次,避免在它下面的进一步代码,但继续读取下一行输入并在继续时让.
正如你所看到我在done
那里尝试但只有令牌意外的错误.
我宁愿不将大部分循环代码包含在if和else中,因为实际上只有很少的终止条件,只有全局和仅当前循环.
有没有一种简单的方法可以/dev/stdin
在我的bash脚本中"回放" 已经从输入管道读取全部或部分内容?
应用程序:我写了一个简单的MDA,在第1部分中,逐行读取来自fetchmail的单个电子邮件,如下所示:
while read -a linA; do
echo -e "$[++linenum]:\t${#linA[@]},${linA[*]}" > /dev/null # verbose
[ "${linA[0]}" = "Date:" ] && unset linA[0] && mailDate="${linA[*]}"
[ "${linA[0]}" = "Subject:" ] && unset linA[0] && mailSubject="${linA[*]}"
[ "$mailSubject" = "Courtesy Fill Notification" ] || break # if wrong subject then thank you, we're done with this mail
done
Run Code Online (Sandbox Code Playgroud)
在处理结束时,我希望将整个消息保存到一个文件中,用于调试,以便管道的编写者端看到它的整个输出已被读取,而不是返回失败(因此保留消息)在邮箱中未读).
请原谅,如果这是非常基本的.我一直试图遍历每个单元格,包括行数组中的标题单元格.我可以在Nokogiri CSS选择器中使用OR运算符吗?
thang= Nokogiri::HTML(IO.read "|cat page.html").css('table[@id="costbasisTable"] tr')
Run Code Online (Sandbox Code Playgroud)
正确获取所有行,包括标题行(在后续页面上重复):
thang[0].inner_html
=> <th class="tLeft"></th><th>cellA2</th><th>cellA3data</th>
thang[1].inner_html
=> <td>cellB1</td><td>cellB2</td><td>cellB3data</td>
Run Code Online (Sandbox Code Playgroud)
麻烦的是与以下,这可能会返回空白,如果该行只包含日的不是TD的:
N=0
thang[N].css("td").map{|c| c.text.strip.gsub(/\t.*/,"").delete ",".tr("&/|:;\n","_")}.to_a
Run Code Online (Sandbox Code Playgroud)
.css(...)的哪个参数意味着"匹配任何<td>
OR <th>
单元格"?
使用.xpath()代替这些Nokogiri XML元素是否可行/更好?
bash
将数字转换为像1101这样的位域字符串可能是最简洁的方法吗?
实际上我试图做相反的事情
echo $[2#1101]
Run Code Online (Sandbox Code Playgroud)
原因:我需要向一个程序发送一个参数,该程序采用像"0011010110"这样的完整字符串形式的位域,但通常只需要启用一个或几个位,如下所示:
SUPPRESSbits=$[1<<16] runscript.sh # OR
SUPPRESSbits=$[1<<3 + 1<<9] runscript.sh # much more readable when I know what bits 3 and 9 toggle in the program
Run Code Online (Sandbox Code Playgroud)
然后runscript.sh然后在其env中看到SUPPRESSbits=65536
而不是以SUPPRESSbits="1000000000000000"
解析错误结束.
bash ×3
ruby ×2
bits ×1
break ×1
css ×1
html-parsing ×1
http-headers ×1
http-referer ×1
loops ×1
math ×1
mechanize ×1
nokogiri ×1
pipe ×1
pointers ×1
redirect ×1
shell ×1
stdin ×1
watir ×1
while-loop ×1