如何获取网页中所有的链接

 我们在做关于网络的编程时经常要获取特定页面中的所有网址链接,下面的方法实现这个目地

int CClick::CaseIgnoreStrStr(char *srcstr,char *substr)  
{  
 char *buffer,*p,*substrupper;  
   
 buffer = _strupr(_strdup(srcstr));  
 substrupper=_strupr(_strdup(substr));  
   
 p=strstr(buffer,substrupper);  
 if(p==NULL)  
  return -1;  
 else  
  return p-buffer;  
 }

int CClick::ParseUrlFrom(char *line,char *url)  
{  
 char *p1,*p2;  
 char tmp[1024];  
 int i=0,index=0;  
 memset(tmp,0,sizeof(tmp));  
   
 p1=NULL;
 p2=NULL;
 index=CaseIgnoreStrStr(line,"HREF");  
 if(index==-1)  
  return -1;  
   
 p1=line+index;  
 p1=p1+4; 
 index=CaseIgnoreStrStr(p1,   "HTTP://");  
 if(index==-1)  
  return -1;  
 else  
 {  
  p2=p1+index;  
  while((*p2!='"')&&(*p2!=' ')&&(*p2!='>')&&(*p2!=0x0a)  
   &&(*p2!=0x0d)&&(*p2!=0)&&(*p2!='#')&&(*p2!='/''))  
  {  
   *url=*p2;  
   url++;  
   p2++;  
  }  
 }  
 return 0;  
}


CStringArray *CClick::GetClickURL(CString url)
{
 CInternetSession mysession;
 CStringArray *urlarr=new CStringArray[30];
 CHttpFile *pFile=(CHttpFile*)mysession.OpenURL(url);
 
 char buf[1024],tempUrl[1024];
 int n;
 while((n=pFile->Read(buf,1024))>0)
 {
  memset(tempUrl,0,sizeof(tempUrl));
  if(ParseUrlFrom(buf,tempUrl)==0)
   urlarr->Add(tempUrl);
 }

 pFile->Close();
 return urlarr;
}

本文原出处www.2008tnjj.com如有转载请注明

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用 Selenium 的 `find_elements_by_tag_name` 方法来提取网页的所有链接。首先,需要使用 Selenium 在浏览器打开网页,然后使用以下代码来提取网页的所有链接: ```python links = driver.find_elements_by_tag_name("a") ``` 这将返回一个由所有链接组成的列表。您可以使用以下代码来遍历该列表并打印链接的文本和 URL: ```python for link in links: print(link.text, link.get_attribute("href")) ``` 需要注意的是,这些链接可能包括网页的所有类型的链接,例如导航链接、按钮、图像等。如果您只想提取某些类型的链接,则可以使用 Selenium 的其他方法来筛选它们,例如 `find_elements_by_class_name` 或 `find_elements_by_css_selector`。 希望这能帮到你! ### 回答2: Selenium是一种用于自动化测试的工具,也可以用于提取网页的所有链接。使用Selenium提取网页的所有链接可以通过以下步骤完成: 1. 安装Selenium库并配置驱动程序:首先,需要在Python环境安装Selenium库,并根据使用的浏览器下载并配置相应的驱动程序,如ChromeDriver或GeckoDriver。 2. 创建一个webdriver对象:在Python代码,使用Selenium创建一个webdriver对象,以启动一个浏览器会话。 3. 打开目标网页:使用webdriver对象的`get()`方法打开目标网页,代码示例为:`driver.get("https://www.example.com")`。 4. 提取所有链接:通过使用Selenium提供的`find_elements_by_tag_name()`方法,寻找标签为`<a>`的所有元素,将其保存到一个列表。 代码示例:`link_elements = driver.find_elements_by_tag_name("a")` 5. 遍历链接并提取URL:遍历保存链接元素的列表,并使用元素的`get_attribute()`方法获取每个链接元素的`href`属性,即链接URL。 代码示例:```for link_element in link_elements: link_url = link_element.get_attribute("href") print(link_url)``` 通过以上步骤,使用Selenium可以提取网页的所有链接。需要注意的是,网页链接可能包含相对路径或者其他非标准格式,可能需要进行进一步的处理和筛选。另外,Selenium也可以与BeautifulSoup等其他Python库一起使用以提取更加复杂的网页信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值