Python的學習筆記DAY6---爬蟲(1)
阿新 • • 發佈:2018-11-08
爬蟲,全稱網路爬蟲,是一種按照一定的規則,自動地抓取全球資訊網資訊的程式或者指令碼。
要寫爬蟲,首先需要寫的程式能連線到網路,Python提供了urllib模組可以用來連線網路,一個簡單的例子如下:
import urllib.request
response = urllib.request.urlopen('http://www.baidu.com')
print(response.read())
執行結果如下圖所示:
一堆程式碼,表示已經把百度首頁的程式碼打開了,看程式碼前面,編碼應該是UTF-8的,把這些程式碼轉換成UTF-8的再來看看:
程式碼:
import urllib.request
response = urllib.request.urlopen('http://www.baidu.com')
html = response.read()
html = html.decode('utf-8')
print(html)
雖然也很亂,好歹比剛才好點了。。。。。。。。
每次要看編碼格式很麻煩,Python裡有個三方的模組叫做chardet,是用來識別編碼型別的,非常的好用,安裝三方模組呢,推薦使用pip方法,開啟windows的命令提示符
輸入pip install chardet 即可,如下圖所示:
安裝成功後就可以呼叫了,用法如下:
import urllib.request import chardet response = urllib.request.urlopen("http://www.bilibili.com").read() a = chardet.detect(response) print(a) --------------------------------------------------------------------- {'confidence': 0.99, 'encoding': 'utf-8'}
如上所示,返回了編碼是utf-8,可能性是0.99,下面再寫一個使用者輸入url然後返回該地址的編碼的例子:
import urllib.request
import chardet
def main():
url = input('請輸入網址:')
response = urllib.request.urlopen(url)
html = response.read()
encode = chardet.detect(html)['encoding']
if encode == 'GB2312':
encode = 'GBK'
print('此網頁編碼為:%s' % encode)
main()
--------------------------------------------------------
請輸入網址:http://www.baidu.com
此網頁編碼為:utf-8
請輸入網址:http://www.bilibili.com
此網頁編碼為:utf-8