c#使用visual studio的网络绘图初学者对添加链接有疑问
下面是我为刮花所做的工作 我已经附上了我的文件,因为它不会在这个网站上使用ctrl+v 正如你所看到的,这只会刮去新闻的第一页,现在我想做的是如何将新闻从第一页刮到最后(43199),但我不确定从哪里开始我是一个非常初学者,我开始学习c#就像几周前一样,但我对编码非常感兴趣,我想向c#大师学习。对不起,我的英语不好c#使用visual studio的网络绘图初学者对添加链接有疑问,c#,linq,selenium,web-scraping,web-crawler,C#,Linq,Selenium,Web Scraping,Web Crawler,下面是我为刮花所做的工作 我已经附上了我的文件,因为它不会在这个网站上使用ctrl+v 正如你所看到的,这只会刮去新闻的第一页,现在我想做的是如何将新闻从第一页刮到最后(43199),但我不确定从哪里开始我是一个非常初学者,我开始学习c#就像几周前一样,但我对编码非常感兴趣,我想向c#大师学习。对不起,我的英语不好 您在寻呼机中的当前页面是一个跨距,而不是一个链接,因此下面是我要做的。 首先在底部找到寻呼机: public bool GoToNextPage() { IWebElement p
您在寻呼机中的当前页面是一个跨距,而不是一个链接,因此下面是我要做的。 首先在底部找到寻呼机:
public bool GoToNextPage()
{
IWebElement pager = driver.FindElement(By.Xpath("descendant::div[@class='paging']"));
//Then find the current page:
List<IWebElement> nextPage = pager.FindElements(By.Xpath("descendant::span\following-sibling::a")).ToList();
if(nextPage.Count > 0)
{
nextPage.First().Click();
return true;
}
else{
//you're at the end of the pages
return false;
}
}
如果有人投了反对票,你能至少解释一下原因吗?问题是,当你点击下一页时,它不会变为1->2->3->4,而是变为1->11->21->31,这就是为什么你要用span来找到你的位置。如果您在第1页,那么跨度是第1页,因此下一页是以下链接(第2页链接)。如果你在第10页,跨度是第10页,所以下面的链接是箭头。单击箭头将进入第11页,现在跨度为11,因此下一个链接为12。
bool hasNextPage = true;
while(hasNextPage)
{
//your existing scrape functionality here
hasNextPage = GoToNextPage();
}