首頁常見問題正文

常用的爬蟲框架或者模塊有哪些?簡述它們的優(yōu)缺點(diǎn)

更新時(shí)間:2023-03-10 來源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

  Python自帶的urllib和urllib2,也可以使用requests這種第三方庫,或者Scrapy框架。

  urllib和urllib2模塊都可以做與請(qǐng)求URL相關(guān)的操作,但它們提供了不同的功能。

  urllib2.urlopen可以接收一個(gè)Request對(duì)象或者URL(在接受Request對(duì)象的時(shí)候,并以此可以來設(shè)置一個(gè)URL的headers),urllib.urlopen只接收一個(gè)URL。

  由于urllib有urlencode方法可以將字符串以URL進(jìn)行編碼,但是urllib2沒有,urllib和urllib2經(jīng)常會(huì)一起使用。urllib2可以接收一個(gè)Request類的實(shí)例來設(shè)置URL請(qǐng)求的headers,urlib僅可以接受URL。

  request是一個(gè)HTTP庫,它可以用來對(duì)HTTP進(jìn)行請(qǐng)求,是一個(gè)強(qiáng)大的庫,但是下載和解析部分需要自己處理,靈活性高,高并發(fā)與分布式部署也非常靈活,對(duì)于功能可以更好實(shí)現(xiàn)。

  Scrapy是一個(gè)封裝起來的框架,它包含了下載器、解析器、日志及異常處理,基于多線程,Scrapy基于多線程和Twisted的方式處理,對(duì)于固定單個(gè)網(wǎng)站的爬取開發(fā)有優(yōu)勢,但是對(duì)于多網(wǎng)站爬取,在并發(fā)及分布式處理方面,顯得不夠靈活。

1678416855526_領(lǐng)取課程.jpg

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!