更新時間:2023-03-10 來源:黑馬程序員 瀏覽量:
Python自帶的urllib和urllib2,也可以使用requests這種第三方庫,或者Scrapy框架。
urllib和urllib2模塊都可以做與請求URL相關(guān)的操作,但它們提供了不同的功能。
urllib2.urlopen可以接收一個Request對象或者URL(在接受Request對象的時候,并以此可以來設(shè)置一個URL的headers),urllib.urlopen只接收一個URL。
由于urllib有urlencode方法可以將字符串以URL進行編碼,但是urllib2沒有,urllib和urllib2經(jīng)常會一起使用。urllib2可以接收一個Request類的實例來設(shè)置URL請求的headers,urlib僅可以接受URL。
request是一個HTTP庫,它可以用來對HTTP進行請求,是一個強大的庫,但是下載和解析部分需要自己處理,靈活性高,高并發(fā)與分布式部署也非常靈活,對于功能可以更好實現(xiàn)。
Scrapy是一個封裝起來的框架,它包含了下載器、解析器、日志及異常處理,基于多線程,Scrapy基于多線程和Twisted的方式處理,對于固定單個網(wǎng)站的爬取開發(fā)有優(yōu)勢,但是對于多網(wǎng)站爬取,在并發(fā)及分布式處理方面,顯得不夠靈活。