python:爬虫0
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python:爬虫0相关的知识,希望对你有一定的参考价值。
什么是网页爬虫,也叫网页蜘蛛。把互联网比作一个蜘蛛网,有好多节点,这个蜘蛛在网上爬来爬去,对对网页中的每个关键字进行建立索引,然后建立索引数据库,经过复杂的排序算法后,这些算法的结果将按照相关度的高低展现出来。
一、要想写爬虫,首先就要解决第一个问题,编程语言怎么访问互联网(python)?
python自带模块urllib(url+lib)(额力博)
url的一般格式为(带方括号[]的为可选项):
protocol://hostname[:port]/path/[;parameters][?query]#fragment
- 第一部分:协议:http、https、ftp、file、ed2k(电驴)、......
- 第二部分:存放资源的服务器的域名系统或IP地址(有时候要包含端口号,各种传输协议都有默认的端口号,如http的默认端口为80)
- 第三部分:资源的具体地址,如目录或文件名等
Python2中有urllib和urllib2两个模块;python3对这个做了个打包,都叫urllib。通过帮助 文档可以考到,其实这并不是模块,而是一个包;下边有四个模块:
- urllib.request(主要讲这个,也是最复杂的,它包含对服务器的请求、跳转、代理、安全等等)
- urllib.error
- urllib.parse
- urllib.robotparser
查看urllib.request文档,有好多东西,不能这么看,然后百度谷歌查url.request怎么用(学习)
>>> import urllib.request >>> response = urllib.request.urlopen("http://www.fishc.com") #这个打开的过程实际上是把网页从 服务器上获取的过程 >>> html = response.read() #把这个对象(类文件对象)读取出来 >>> print(html) #print(html) 是个b二进制的文件,和我们可视的代码(审视元素)不一样 b‘<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"\r\n\t"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r\n\r\n<!-- \r\n(c) 2011 \xc4\xbdubom\xc3\xadr Krupa, CC BY-ND 3.0\r\n -->\t\r\n\r\n<html xmlns="http://www.w3.org/1999/xhtml">\r\n\t<head>\r\n\t\t<meta http-equiv="content-type" content="text/html; charset=utf-8" />\xe9\xb1\xbcC\xe5\xb7\xa5\xe4\xbd\x9c\xe5\xae\xa4-\xe5\x85\x8d\xe8\xb4\xb9\xe7\xbc\x96\xe7\xa8\x8b\xe8\xa7\x86\xe9\xa2\x91\xe6\x95\x99\xe5\xad\xa6|\xe7\xbc\x96\xe7\xa8\x8b\xe6\x8a\x80\xe6\x9c\xaf\x......... == document.location.protocol) ? " https://" : " http://");\r\ndocument.write(unescape("%3Cscript src=\‘" + _bdhmProtocol + "hm.baidu.com/h.js%3F49739b392c8b45caf83863be633c629f\‘ type=\‘text/javascript\‘%3E%3C/script%3E"));\r\n \t\t\t</script>\r\n\t\t</div>\r\n\t</body>\r\n</html>\r\n‘ >>> html = html.decode("utf-8") #在进行一个解码,需要知道原网页编码方式 >>> print(html) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <!-- (c) 2011 ?ubomír Kru...............F49739b392c8b45caf83863be633c629f‘ type=‘text/javascript‘%3E%3C/script%3E")); </script> </div> </body> </html>