Python3实现爬取网站下所有URL方式

  

<强>获取首页元素信息:

  

目标test_URL: http://www.xxx.com.cn/

  

首先检查元素,一个标签下是我们需要爬取得链接,通过获取链接路径、定位出我们需要的信息

        汤=Bs4 (reaponse。文本,“lxml”)   urls_li=汤。选择(“# mainmenu_top比;div祝辞div祝辞ul祝辞李”)      

首页的URL链接获取:

  

完成首页的URL链接获取,具体代码如下:

        “‘   遇到不懂的问题? Python学习交流群:821460695满足你的需求,资料都已经上传群文件,可以自行下载!   “‘   def get_first_url ():   list_href=https://www.yisu.com/zixun/[]   reaponse=requests.get (“http://www.xxx.com.cn”,标题=标题)   汤=Bs4 (reaponse。文本,“lxml”)   urls_li=汤。选择(“# mainmenu_top比;div祝辞div祝辞ul祝辞李”)   在urls_li url_li:   url=url_li.select (“”)   为在url网址:   url_href=https://www.yisu.com/zixun/url.get (“href”)   list_href.append (head_url + url_href)   out_url=列表(设置(list_href))   在out_url reg:   打印(reg)      

<>强遍历第一次返回的结果:

  

从第二步获取URL的基础上,遍历请求每个页面,获取页面中URL的链接,过滤掉不需要的信息

  

具体代码如下:

        def get_next_url (urllist):   url_list=[]   在urllist url:   响应=requests.get (url,头=标题)   汤=Bs4 (response.text“lxml”)   url=soup.find_all (“”)   如果网址:   url2的网址:   url2_1=url2.get (“href”)   如果url2_1:   如果url2_1 [0]=="/":   url2_1=head_url + url2_1   url_list.append (url2_1)   如果url2_1 0:24==" http://www.xxx.com.cn ":   url2_1=url2_1   url_list.append (url2_1)   其他:   通过   其他:   通过   其他:   通过   其他:   通过   url_list2=集(url_list)   在url_list2 url_:   res=requests.get (url_)   如果res.status_code==200:   打印(url_)   打印(len (url_list2)      

<强>递归循环遍历:

  

递归实现爬取所有url,在get_next_url()函数中调用自身,代码如下:

        get_next_url (url_list2)      

全部代码如下:

        进口的要求   从bs4 BeautifulSoup作为bs4导入      head_url=" http://www.xxx.com.cn "   头={   “用户代理”:“Mozilla/5.0 (Windows NT 10.0;Win64;x64) AppleWebKit/537.36 (KHTML,像壁虎)Chrome/72.0.3626.121 Safari 537.36”   }   def get_first_url ():   list_href=https://www.yisu.com/zixun/[]   reaponse=请求。get (head_url header=头)   汤=Bs4 (reaponse.text“lxml”)   urls_li=汤。选择(“# mainmenu_top比;div祝辞div祝辞ul祝辞李”)   在urls_li url_li:   url=url_li.select (“”)   为在url网址:   url_href=https://www.yisu.com/zixun/url.get (“href”)   list_href.append (head_url + url_href)   out_url=列表(设置(list_href))   返回out_url         def get_next_url (urllist):   url_list=[]   在urllist url:   响应=requests.get (url,头=标题)   汤=Bs4 (response.text“lxml”)   url=soup.find_all (“”)   如果网址:   url2的网址:   url2_1=url2.get (“href”)   如果url2_1:   如果url2_1 [0]=="/":   url2_1=head_url + url2_1   url_list.append (url2_1)   如果url2_1 0:24==" http://www.xxx.com.cn ":   url2_1=url2_1   url_list.append (url2_1)   其他:   通过   其他:   通过   其他:   通过   其他:   通过   url_list2=集(url_list)   在url_list2 url_:   res=requests.get (url_)   如果res.status_code==200:   打印(url_)   print (len (url_list2))   get_next_url (url_list2)         if __name__==癬_main__”:   urllist=get_first_url ()   get_next_url (urllist)   之前      

以上这篇Python3实现爬取网站下所有URL方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

Python3实现爬取网站下所有URL方式