我正在尝试抓取http://stock.hankyung.com/news/app/newslist.php?cid=01的网站。
我的编码应该抓取每个标题仅为第一页提供的所有信息。现在我想在完成第一页后抓取,我想抓取下一页并按照1-> 2-> 3->。
答案 0 :(得分:1)
您在链接中有页码。
int page_number;
string url_link = "http://stock.hankyung.com/news/app/newslist.php?cid=01&page=";
for (int i = 1; i <= page_numnber; i++) {
driver.Navigate().GoToUrl(url_link + i);
// Code here
}
我希望它有所帮助
编辑: 当您检查下面的最后一页按钮时
<a href="http://stock.hankyung.com/news/app/newslist.php?cid=01&page=43940" class="btn last">
您可以使用
选择元素 IWebElement lastPageElement = driver.FindElement(By.XPath("//a[@class='btn last']"));
然后选择href
属性。
string page_number_string = lastPageElement.GetAttribute("href");
然后从中获取一个子串
page_number_string = page_number_string .Substring(60);
将string
投射到int
int page_number= Int32.Parse(page_number_string);
最后它会是这样的:
driver.Navigate().GoToUrl("http://stock.hankyung.com/news/app/newslist.php?cid=01");
System.Threading.Thread.Sleep(1000);
IWebElement lastPageElement = driver.FindElement(By.XPath("//a[@class='btn last']"));
string page_number_string = lastPageElement.GetAttribute("href");
page_number_string = page_number_string .Substring(60);
int page_number Int32.Parse(page_number_string);
string url_link = "http://stock.hankyung.com/news/app/newslist.php?cid=01&page=";
for (int i = 1; i <= page_number; i++) {
driver.Navigate().GoToUrl(url_link + i);
// Code here
}
答案 1 :(得分:0)
从链接使用查询字符串属性page
来访问每个页面,例如
要达到第4页,链接就像这样
http://stock.hankyung.com/news/app/newslist.php?cid=01&page=4
你可以使用循环来访问所有页面