我正在编写一个脚本,其中包括根据他的要求(我将其视为输入)向用户显示网页并在firefox中打开它。例如,这个的粗略版本是:
#!/bin/bash
read -p "What do you want to search" search_term
link=$(echo "http://www.mywebsite_whatever.com/search?q="$search_term)
firefox $link
主要问题是我无法wget / urllib这个网站,因为我没有得到许可。
现在我想做的是:
让用户只查看网页上的某些关键字。所以我想要:
使用find
框(Ctrl + F)打开firefox,并在其中输入关键字(不更改firefox的源代码)
不知何故有火狐打开网站,将其保存为HTML并退出。 (我不能忘记)然后我可以根据需要grep
输出关键字。 [请不要开始讨论这是不道德的事情。我这样做仅仅是为了锻炼]
我正在使用Linux。
答案 0 :(得分:3)
要控制程序中的浏览器,请尝试Selenium。它支持Java
,Python
等
请参阅以下示例源代码:http://seleniumhq.org/docs/03_webdriver.html
package org.openqa.selenium.example;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.ExpectedCondition;
import org.openqa.selenium.support.ui.WebDriverWait;
public class Selenium2Example {
public static void main(String[] args) {
// Create a new instance of the Firefox driver
// Notice that the remainder of the code relies on the interface,
// not the implementation.
WebDriver driver = new FirefoxDriver();
// And now use this to visit Google
driver.get("http://www.google.com");
// Alternatively the same thing can be done like this
// driver.navigate().to("http://www.google.com");
// Find the text input element by its name
WebElement element = driver.findElement(By.name("q"));
// Enter something to search for
element.sendKeys("Cheese!");
// Now submit the form. WebDriver will find the form for us from the element
element.submit();
// Check the title of the page
System.out.println("Page title is: " + driver.getTitle());
// Google's search is rendered dynamically with JavaScript.
// Wait for the page to load, timeout after 10 seconds
(new WebDriverWait(driver, 10)).until(new ExpectedCondition<Boolean>() {
public Boolean apply(WebDriver d) {
return d.getTitle().toLowerCase().startsWith("cheese!");
}
});
// Should see: "cheese! - Google Search"
System.out.println("Page title is: " + driver.getTitle());
//Close the browser
driver.quit();
}
}
答案 1 :(得分:0)
将Wget与--user-agent
开关一起使用,以便网站认为您正在使用Firefox,例如
wget --user-agent="Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:12.0) Gecko/20100101 Firefox/12.0"
当然,对于永久性脚本,您应该使用--user-agent="MyScript/1.0 (http://mywebsite/)"
或类似的,以便如果它变得混乱,他们就知道要联系谁。