<强>获取首页元素信息:强>
目标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方式