Python简单爬虫
刚开始接触爬虫,网上找了代码,
1 import urllib.request 2 def getHtml(url): 3 page = urllib.request.urlopen('http://www.baidu.com') 4 html = page.read() 5 return html 6 7 html = getHtml("http://www.baidu.com") 8 9 print(html)
运行,直接错误!!!
第一次错误,错误信息:urllib.error.URLError: <urlopen error [WinError 10061] 由于目标计算机积极拒绝,无法连接。>
错误原因:电脑里安装的有蓝灯。。。导致的edge浏览器不能用。
第二次错误,得到的是乱码,错误信息:b'\x1f\x8b\x08\x00\x00\x00\x00\x00\x02\x03\x9d|\xfds\xe3Hv\xd8\xef\xf9+(\xcc\xae\x06X\x81\x10I\x8d\xbe\x08\xb5\xa6\xc4/\x8d4\xd2H#Q\xf3\xa5QX
错误原因:大多数网站都对支持gzip压缩的浏览器做了gzip的压缩,在python中可以通过gzip包处理gzip压缩过的网页。即内容被压缩过,不能直接decode,需要用gzip解压,再decode。
修改后代码:
1 import urllib.request 2 import gzip 3 def getHtml(url): 4 page = urllib.request.urlopen('http://www.baidu.com') 5 html = page.read() 6 return html 7 8 html = getHtml("http://www.baidu.com") 9 html = gzip.decompress(html) 10 html = html.decode('utf-8') 11 12 print(html)
能正确得到网页的HTML代码!