Python爬虫如何爬取网页中所有的url

  介绍

这篇文章主要介绍Python爬虫如何爬取网页中所有的url,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

Python可以做什么

Python是一种编程语言,内置了许多有效的工具,Python几乎无所不能,该语言通俗易懂,容易入门,功能强大,在许多领域中都有广泛的应用,例如最热门的大数据分析,人工智能,网页开发等。

在使用Python爬虫进行网络页面爬取的过程中,第一步肯定是要爬取url,若是面对网页中很多url,,又该如何爬取所以url呢?本文介绍Python爬虫爬取网页中所有的url的三种实现方法:1、使用BeautifulSoup快速提取所有的url; 2、使用Scrapy框架递归调用解析;3、在get_next_url()函数中调用自身,递归循环爬取所有url。

<强>方法一:使用BeautifulSoup快速提取所有url

BeautifulSoup是一种可以从html和xml中快速提取内容的Python库

<>之前,,,,def  getAllUrl(自我、url):   ,,,,,,,import  urllib.request   ,,,,,,,得到bs4  import  BeautifulSoup   ,,,,,,,html =, urllib.request.urlopen (url) .read () .decode (“utf-8")   ,,,,,,,soup =, BeautifulSoup (html、,特性=& # 39;html.parser& # 39;)   ,,,,,,,tags =, soup.find_all(& # 39;一个# 39;)   ,,,,,,,for  tag 拷贝标签:   ,,,,,,,,,,,印刷(str (tag.get (& # 39; href # 39;)) .strip ())

<强>方法二:使用Scrapy框架递归调用解析

递归调用解析直到每个页面爬取完

 class  QiubaiSpider (scrapy.Spider):
  ,,,name =, & # 39; qiubai& # 39;
  ,,,#,allowed_domains =, (& # 39;www.qiushibaike.com/text& # 39;)
  ,,,start_urls =, (& # 39; https://www.qiushibaike.com/text/& # 39;)
  
  ,,,#,设计一个url模板
  ,,,url =, & # 39; https://www.qiushibaike.com/text/page/%d/& # 39;
  ,,,pageNum =1
  
  ,,,def 解析(自我,,反应):
  ,,,,,,,div_list =, response.xpath (“//div [@ id=& # 39; content-left& # 39;]/div")
  ,,,,,,,for  div 拷贝div_list:
  ,,,,,,,,,,,....
  ,,,,,,,,,,,#,将项目提交给管道
  ,,,,,,,,,,,油品收率
  
  ,,,,,,,#,多url,请求的手动发送
  ,,,,,,,if  self.pageNum  & lt;=, 13:,, #,控制!否则无限递归了. .
  ,,,,,,,,,,,self.pageNum  +=1
  ,,,,,,,,,,,印刷(& # 39;爬第:% d 页& # 39;,%,self.pageNum)
  ,,,,,,,,,,,new_url =, self.url  % self.pageNum
  ,,,,,,,,,,,#,callback 回调函数,页面进行解析
  ,,,,,,,,,,,油品收率scrapy.Request (url=new_url,回调=self.parse) 

<强>方法三:在get_next_url()函数中调用自身,递归循环爬取所有url

 # !/usr/bin/env  python 
  #,- *安康;编码:utf-8  - *
  
  import 请求
  得到bs4  import  BeautifulSoup  as  Bs4
  
  时间=head_url “http://www.xxx.com.cn"
  headers =, {
  ,,,“User-Agent":,“Mozilla/5.0, (Windows  NT  10.0;, Win64;, x64), AppleWebKit/537.36, (KHTML, like 壁虎),
  ,,,Chrome/72.0.3626.121  Safari/537.36“
  }
  def  get_first_url ():
  ,,,list_href =, []
  ,,,reaponse =, requests.get (head_url,,头=标题)
  ,,,soup =, Bs4 (reaponse.text,“lxml")
  ,,,urls_li =, soup.select (“# mainmenu_top 祝辞,div 祝辞,div 祝辞,ul 祝辞,li")
  ,,,for  url_li 拷贝urls_li:
  ,,,,,,,urls =, url_li.select (“a")
  ,,,,,,,for  url 拷贝网址:
  ,,,,,,,,,,,url_href =, url.get (“href")
  ,,,,,,,,,,,list_href.append (head_url + url_href)
  ,,,,,,,,,,,out_url =,列表(设置(list_href))
  ,,,return  out_url
  
  
  def  get_next_url (urllist):
  ,,,url_list =, []
  ,,,for  url 拷贝urllist:
  ,,,,,,,response =, requests.get (url,头=标题)
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null

Python爬虫如何爬取网页中所有的url