我正试图从网站上抓取图片.到目前为止,我正在使用Nokogiri和XPath,但收效甚微.对于HTML有img和src的典型网站,我可以使用:
tmp2 = Nokogiri::HTML(open(site_url))
tmp2.xpath("//img/@src").each do |src|
...do whatever
end
Run Code Online (Sandbox Code Playgroud)
但是,像亚马逊和eBay这样的网站只能用javascript触发某些图像.如果我查看代码,我可以在数组中看到数据.例如,来自亚马逊(来源:http://www.amazon.com/Threads-Thought-Womens-Dreams-X-Small/dp/B00T46V758/ref=sr_1_5? s=apparel&ie=UTF8&qid=1433555447&sr= 1-5) :
<script type="text/javascript">
P.when('jQuery', 'cf').execute(function($, cf){
P.load.js('http://z-ecx.images-amazon.com/images/G/01/browser-scripts/imageBlock-udp-airy/imageBlock-udp-airy-4060168860._V1_.js');
});
P.when('A', 'jQuery', 'ImageBlockATF', 'cf').register('ImageBlockBTF', function(A, $, imageBlockATF, cf){
var data = {"indexToColor":[],"burjImageBlock":0,"isSwatchHoverConsistent":1,"heroFocalPoint":null,"visualDimensions":["color_name"],"productGroupID":"apparel_display_on_website","newVideoMissing":0,"useIV":0,"useClickZoom":null,"useChildVideos":0,"numColors":7,"logMetrics":0,"defaultColor":"initial","airyConfig":{"enableContinuousPlay":null,"installFlashButtonText":"Install Flash Player","contentTitle":null,"autoplayCutOffTimeSeconds":null,"ageGate":{"monthNames":["January","February","March","April","May","June","July","August","September","October","November","December"],"deniedPrompt":"We're sorry. You are not old enough to watch this video.","submitText":"Submit","prompt":"This video is not intended for all audiences. What date were you born?"},"videoAds":null,"videoUnsupportedPrompt":"Sorry, this video is unsupported on this browser.","desiredMode":null,"swfUrl":"http://g-ecx.images-amazon.com/images/G/01/vap/video/airy2/prod/2.0.1102.0/flash/AiryBasicRenderer._V304902271_.swf","isAutoplayEnabled":null,"installFlashPrompt":"Adobe Flash Player is required to watch this video.","isLiveStream":null,"regionCode":"NA","contentId":null,"playbackErrorPrompt":"Sorry, an error has occurred …Run Code Online (Sandbox Code Playgroud) Drupal新手问题.我正在尝试将当前日期/时间作为unix时间戳插入SQL数据库.它正在工作,我没有收到错误,但它每次只插入相同的值(2147483647).我正在研究一个本地主机(如果这有所作为)并尝试了以下内容,但都无济于事:
format_date(strtotime('now'), 'custom', 'YYYY-MM-DD 00:00:00');
format_date(time(), 'custom', 'YYYY-MM-DD HH:MM:SS');
format_date(mktime(), 'custom', 'YYYY-MM-DD HH:MM:SS');
Run Code Online (Sandbox Code Playgroud) 我在Rails 3中使用Twitter引导程序弹出窗口.
当我最初加载页面(显示操作)时,弹出窗口正常工作.
我的部分(一个叫另一个)看起来像这样:
<span class="solution_votes_stat" id="<%= 'solution_votes_stat_' + sid.to_s %>">
<%= render :partial => 'solutions/popover', :locals => {:s => s} %>
</span>
Run Code Online (Sandbox Code Playgroud)
_popover.html.erb看起来像这样:
<% sid = s.id %>
<% solution_vote_up_count = s.solution_votes.votes_up.count %>
<% all_users_who_voted_up(sid) %>
<span class = "popover-with-html" rel = "popover"
data-original-title = "Who likes this"
data-content = "<%= render :partial => 'solutions/users_who_voted_up', :locals => {:users_who_voted_up => @users_who_voted_up} %>"
id="<%= 'solution_' + sid.to_s + '_up_votes' %>">
<%= solution_vote_up_count %>
</span>
<%= solution_vote_up_count==1 ? "Advisor" : "Advisors" %> …Run Code Online (Sandbox Code Playgroud)