更新时间:2023-03-10 来源:黑马程序员 浏览量:
Python自带的urllib和urllib2,也可以使用requests这种第三方库,或者Scrapy框架。
urllib和urllib2模块都可以做与请求URL相关的操作,但它们提供了不同的功能。
urllib2.urlopen可以接收一个Request对象或者URL(在接受Request对象的时候,并以此可以来设置一个URL的headers),urllib.urlopen只接收一个URL。
由于urllib有urlencode方法可以将字符串以URL进行编码,但是urllib2没有,urllib和urllib2经常会一起使用。urllib2可以接收一个Request类的实例来设置URL请求的headers,urlib仅可以接受URL。
request是一个HTTP库,它可以用来对HTTP进行请求,是一个强大的库,但是下载和解析部分需要自己处理,灵活性高,高并发与分布式部署也非常灵活,对于功能可以更好实现。
Scrapy是一个封装起来的框架,它包含了下载器、解析器、日志及异常处理,基于多线程,Scrapy基于多线程和Twisted的方式处理,对于固定单个网站的爬取开发有优势,但是对于多网站爬取,在并发及分布式处理方面,显得不够灵活。