网络爬虫是一种按照一定规则自动抓取万维网信息的程序。在如今网络发展,信息爆炸的时代,信息的处理变得尤为重要。而这之前就需要获取到数据。有关爬虫的概念可以到网上查看详细的说明,今天在这里介绍一下使用urllib进行网络爬虫的方法使用,在最后的一个案例中把最基本的爬虫要素运用进去,可以作为初学者的一个模板,读懂它进行适当修改就可以使用。
以我的经验来看,在编程上对于陌生的简单的东西,最快的学习方法就是从代码入手了。当然有些很厉害的兄弟,可以完全忽略我这篇博客了。下面的内容我尽量将注释写在代码当中。
1、urllib爬取网页 下面是通过urllib的request函数来获取网页信息,现在的request库也很方便,不过原理都是一样的。
1 import urllib.request 2 3 # 向指定的url地址发送请求并返回服务器响应的数据(文件的对象) 4 response = urllib.request.urlopen("") 5 6 # 读取文件的全部内容,会把读到的东西赋值给一个字符串变量 7 data = response.read() 8 print(data) # 读取得到的数据 9 print(type(data)) # 查看数据类型 10 11 # 读取一行 12 data = response.readline() 13 14 # 读取文件的全部内容,赋值给一个列表变量,优先选择 15 data = response.readlines() 16 # print(data) 17 print(type(data[100])) 18 print(type(data[100].decode("utf-8"))) # 转字符串 19 print(len(data)) 20 21 # 将爬取到的网页写入文件 22 with open(r"F:/python_note/爬虫/file/file1.html", "wb") as f: 23 f.write(data) 24 25 26 # response 属性 27 28 # 返回当前环境的有关信息 29 print(response.info()) 30 31 # 返回状态码 32 print(response.getcode()) 33 # 200为正常,304位为有缓存 34 35 # 返回当前正在爬取的url地址 36 print(response.geturl()) 37 38 url = "https://www.sogou.com/sgo?query=凯哥学堂&hdq=sogou-wsse-16bda725ae44af3b-0099&lxod=0_16_1_-1_0&lxea=2-1-D-9.0.0.2502-3-CN1307-0-0-2-E96F3D19F4C66A477CE71FD168DD223D-62&lxoq=kaigexuetang&lkx=0&ie=utf8" 39 url2 = r"https%3A//www.sogou.com/sgo%3Fquery%3D%E5%87%AF%E5%93%A5%E5%AD%A6%E5%A0%82%26hdq%3Dsogou-wsse-16bda725ae44af3b-0099%26lxod%3D0_16_1_-1_0%26lxea%3D2-1-D-9.0.0.2502-3-CN1307-0-0-2-E96F3D19F4C66A477CE71FD168DD223D-62%26lxoq%3Dkaigexuetang%26lkx%3D0%26ie%3Dutf8" 40 41 newurl = urllib.request.quote(url) # 将含汉字的编码 42 print(newurl) 43 newurl2 = urllib.request.unquote(url2) # 解码 44 print(newurl2) 45 46 47 # 端口号,http 80 48 # https 443