python 爬虫常用模块: Python标准库——urllib模块 功能:打开URL和http协议之类 注:python 3.x中urllib库和urilib2库合并成了urllib库。 其中urllib2.urlopen()变成了urllib.request.urlopen(),urllib2.Request()变成了urllib.request.Request() urllib请求返回网页 urllib.request.urlopen | urllib.request.open(url[,data,[timeout,[cafile,[capth[,cadefault,[context]]]]]])
|
urllib.requset.urlioen可以打开HTTP(主要)、HTTPS、FTP、协议的URL ca 身份验证 data 以post方式提交URL时使用 url 提交网络地址(全程 前端需协议名 后端需端口 http://www.smpeizi.com) timeout 超时时间设置 函数返回对象有三个额外的方法 geturl() 返回response的url信息 常用与url重定向info()返回response的基本信息 getcode()返回response的状态代码 示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | #coding:utf-8 import urllib.request import time import platform
#清屏函数(无关紧要 可以不写) def clear(): print(u"内容过多 3秒后清屏") time.sleep(3) OS = platform.system() if (OS == u'Windows'): os.system('cls') else: os.system('clear') #访问函数 def linkbaidu(): url = 'http://www.pzzs168.com' try: response = urllib.request.urlopen(url,timeout=3) except urllib.URLError: print(u'网络地址错误') exit() with open('/home/ifeng/PycharmProjects/pachong/study/baidu.txt','w') as fp: response = urllib.request.urlopen(url,timeout=3) fp.write(response.read()) print(u'获取url信息,response.geturl()\n:%s'%response.getrul()) print(u'获取返回代码,response.getcode()\n:%s' % response.getcode()) print(u'获取返回信息,response.info()\n:%s' % response.info()) print(u"获取的网页信息经存与idiancai.com")
if __name__ =='main': linkbaidu()
|
Python标准库–logging模块 logging模块能够代替print函数的功能,将标准输出到日志文件保存起来,利用loggin模块可以部分替代debug re模块 正则表达式 sys模块 系统相关模块 sys.argv(返回一个列表,包含所有的命令行) sys.exit(退出程序) Scrapy框架 urllib和re配合使用已经太落后,现在主流的是Scrapy框架 |