나는 mechanicalize를 사용하는 ruby 스크립트를 만들었습니다. google.com으로 이동하여 로그인하고 고양이에 대한 이미지 검색을 수행합니다. 다음 페이지에서 결과 링크 중 하나를 선택하고 이미지를 저장하고 싶습니다.루비에서 mechanicalize로 링크를 선택하는 것
내 문제는 모든 결과에 대한 링크가 빈 문자열로 표시되므로 지정하고 클릭하는 방법이 확실하지 않습니다.
여기에 pp 페이지의 출력이므로, 내가 말하는 링크를 볼 수 있습니다. 첫 번째 링크는 추천 링크이며 "지난 24 시간"이라는 제목이 있기 때문에 클릭 할 수 있지만 두 번째 링크는 클릭 할 수없는 검색의 실제 결과입니다.
page.links.each do |link|
puts link.text.
end
페이지의 링크를 표시합니다
#<Mechanize::Page::Link
"Past 24 hours"
"https://stackoverflow.com/search?q=cats&hl=en&gbv=1&ie=UTF8&tbm=isch&source=lnt&tbs=qdr:d&sa=X&ei=T8kDUu7aB4f8iwKZx4HoBg&ved=0CCQQpwUoAQ">
#<Mechanize::Page::Link
""
"http://www.google.com/imgres?imgurl=http://jasonlefkowitz.net/wp-content/uploads/2013/07/Cute-Cats-cats-33440930-1280-800.jpg&imgrefurl=http://jasonlefkowitz.net/2013/07/slideshow-20-cats-that-suck-at-reducing-tensions-in-the-israeli-palestinian-conflict/&usg=__1YEuvKE4A9r6IIRkcz9Pu6ahN8Q=&h=800&w=1280&sz=433&hl=en&start=1&sig2=ekqjELPNQsK-QQ2r-4TeeQ&zoom=1&tbnid=Xz9P1WD4o4TSlM:&tbnh=94&tbnw=150&ei=b8sDUq36Ge3figLCzoBY&itbs=1&sa=X&ved=0CCwQrQMwAA">
지금 여기의 출력 싹둑이다.
More
Large
Face
Photo
Clip art
Line drawing
Animated
Past 24 hours
Past week
Reset tools
funny cats
cats and kittens
cats musical
cute cats
lots of cats
cats with guns
2
3
4
5
6
7
8
9
10
Next
공지 화면에있는 모든 공백? 거기서 빈 페이지의 ""링크가 pp 페이지 출력에 있습니다. 누구든지 클릭 할 수있는 방법에 대한 아이디어가 있습니까?
다음은 스크립트의 코드입니다.
require 'mechanize'
agent = Mechanize.new
page = agent.get('https://google.com')
page = agent.page.link_with(:text => 'Sign in').click
# pp page
sign_in = page.form() ##leave empty = nil
sign_in.Email = '10halec'
sign_in.Passwd = 'password'
page = agent.submit(sign_in)
page = agent.page.link_with(:text => 'Images').click
search = page.form('f')
search.q = 'cats'
page = agent.submit(search)
# pp page
# agent.page.image_with(:src => /imgres?/).fetch.save
page = agent.page.link_with(:text => '').click
# pp page
# page.links.each do |link|
# puts link.text
# end
pp page
def save filename = nil
filename = find_free_name filename
save! filename
end
문제가있는 페이지에 관련 html을 게시하십시오. – 7stud