Python自帶:urllib,urllib2shell
第三方:requests數據庫
框架: Scrapy多線程
urllib 和urllib2模塊都作與請求URL相關的操做,但他們提供不一樣的功能。併發
urllib2: urllib2.urlopen能夠接受一個Request對象或者url,(在接受Request對象時,並以此能夠來設置 一個URL的headers),urllib.urlopen只接收一個url。框架
urllib 有urlencode,urllib2沒有,所以老是urllib, urllib2常會一塊兒使用的緣由異步
scrapy是封裝起來的框架,他包含了下載器,解析器,日誌及異常處理,基於多線程,twisted的方式 處理,對於固定單個網站的爬取開發,有優點,可是對於多網站爬取100個網站,併發及分佈式處理不 夠靈活,不便調整與擴展scrapy
requests是一個HTTP庫,它只是用來請求,它是一個強大的庫,下載,解析所有本身處理,靈活性高 Scrapy優勢:異步,xpath,強大的統計和log系統,支持不一樣url。shell方便獨立調試。寫middleware分佈式
方便過濾。經過管道存入數據庫 。ide