抓取时无法进入代码搜索 github
Not able to go to the code search while scraping github
我正在尝试使用 selenium 网络抓取来模拟在线 github 搜索。我无法在代码部分进行程序搜索。相反,它会尝试在存储库中搜索。
下面是代码。
FirefoxProfile p = new FirefoxProfile();
p.setPreference("javascript.enabled", false);
org.openqa.selenium.WebDriver driver = new FirefoxDriver();
driver.get("https://github.com");
WebElement element;
element = driver.findElement(By.name("q"));
element.sendKeys("hasRole()");
element.submit();
wait(driver);
element = driver.findElement(By.name("Code")); //prev working line
element.click();
wait(driver);
您可以通过部分link文本找到link:
element = driver.findElement(By.partialLinkText("Code"));
或者,通过 xpath,检查 url:
中的 type=Code
部分
element = driver.findElement(By.xpath("//a[contains(@href, 'type=Code')]"));
此外,您可能需要等待元素变为可见:
WebDriverWait wait = new WebDriverWait(webDriver, timeoutInSeconds);
element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//a[contains(@href, 'type=Code')]")));
我正在尝试使用 selenium 网络抓取来模拟在线 github 搜索。我无法在代码部分进行程序搜索。相反,它会尝试在存储库中搜索。
下面是代码。
FirefoxProfile p = new FirefoxProfile();
p.setPreference("javascript.enabled", false);
org.openqa.selenium.WebDriver driver = new FirefoxDriver();
driver.get("https://github.com");
WebElement element;
element = driver.findElement(By.name("q"));
element.sendKeys("hasRole()");
element.submit();
wait(driver);
element = driver.findElement(By.name("Code")); //prev working line
element.click();
wait(driver);
您可以通过部分link文本找到link:
element = driver.findElement(By.partialLinkText("Code"));
或者,通过 xpath,检查 url:
中的type=Code
部分
element = driver.findElement(By.xpath("//a[contains(@href, 'type=Code')]"));
此外,您可能需要等待元素变为可见:
WebDriverWait wait = new WebDriverWait(webDriver, timeoutInSeconds);
element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//a[contains(@href, 'type=Code')]")));