小编Mar*_*cos的帖子

如何在使用Ruby mechanize加载页面之前设置Referer标头?

有没有一种直接的方法来使用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)

ruby http-referer mechanize http-headers

3
推荐指数
1
解决办法
9610
查看次数

Watir-webdriver如何不首先访问LAST匹配元素?

在动态网页上,我不知道前面匹配元素的数量,所以我不知道要使用哪个索引#.

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">Â&nbsp;1Â&nbsp;</p></td>
      <td align="right"><p class="end-of-weekday-style">Â&nbsp;2Â&nbsp;</p></td>
      <td align="right"><p class="end-of-weekday-style">Â&nbsp;3Â&nbsp;</p></td>
      <td align="right"><p class="end-of-weekday-style">Â&nbsp;4Â&nbsp;</p></td>
      <td align="right"><p class="end-of-weekday-style">Â&nbsp;5Â&nbsp;</p></td>
      <td align="right"><p class="end-of-weekday-style">Â&nbsp;6Â&nbsp;</p></td>
      <td align="right"><p class="end-of-weekday-style">Â&nbsp;7Â&nbsp;</p></td></tr>
    <tr>
      <td align="right"><p class="end-of-weekday-style">Â&nbsp;8Â&nbsp;</p></td>
      <td align="right"><p class="end-of-weekday-style">Â&nbsp;9Â&nbsp;</p></td>
      <td align="right"><p class="end-of-weekday-style">Â&nbsp;10Â&nbsp;</p></td>
      <td align="right"><p class="end-of-weekday-style">Â&nbsp;11Â&nbsp;</p></td>
      <td align="right"><p class="end-of-weekday-style">Â&nbsp;12Â&nbsp;</p></td>
      <td align="right"><a class="current-day-style selected-day-style" onmousemove="window.status=&quot; &quot;" onmouseout="window.status=&quot; &quot;" title="" href="javascript:dateSelected=13;closeCalendar();doOtherFunctions();">Â&nbsp;13Â&nbsp;</a></td>
      <td align="right"><p class="end-of-weekday-style">Â&nbsp;14Â&nbsp;</p></td></tr> …
Run Code Online (Sandbox Code Playgroud)

ruby browser-automation watir watir-webdriver

2
推荐指数
1
解决办法
2490
查看次数

bash虽然突破循环不循环?

任何人都知道一种简单的方法来立即退出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中,因为实际上只有很少的终止条件,只有全局和仅当前循环.

bash loops break while-loop

2
推荐指数
1
解决办法
3730
查看次数

在bash脚本中倒带stdin

有没有一种简单的方法可以/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)

在处理结束时,我希望将整个消息保存到一个文件中,用于调试,以便管道的编写者端看到它的整个输出已被读取,而不是返回失败(因此保留消息)在邮箱中未读).

bash redirect stdin pointers pipe

2
推荐指数
1
解决办法
2212
查看次数

如何选择所有单元格<th>和<td>

请原谅,如果这是非常基本的.我一直试图遍历每个单元格,包括行数组中的标题单元格.我可以在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元素是否可行/更好?

css html-parsing nokogiri

2
推荐指数
1
解决办法
2957
查看次数

在bash中将数字转换为位域字符串

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"解析错误结束.

math bash shell bits

1
推荐指数
1
解决办法
752
查看次数