首頁(yè)常見(jiàn)問(wèn)題正文

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

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

IT培訓(xùn)班

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

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

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

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

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

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

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

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