效果圖
代碼:
#coding:utf-8
# Filename: print_movies_name.py
# 獲取電影天堂最新電影資源名稱
import re
import requests
user_agent='Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_1)'
headers={"User-Agent": user_agent}
# 定義函數(shù)
def get_name():
url = 'https://www.dytt8.net/'
data = requests.get(url, headers = headers).content
# 把 data 轉(zhuǎn)碼
data1 = data.decode('gbk','ignore').encode('utf-8')
names = re.findall("最新電影下載</a>]<a href=.+?《(.+?)》", data1, re.S)
return names # 返回電影名列表 names
# 把函數(shù)的返回值賦值給變量 names
names = get_name()
for name in names:
print('《' + name + '》')
知識點
函數(shù)
函數(shù)就是把一段代碼寫在一起,完成某項特定任務。給這段代碼起個名明未,之后調(diào)用這個函數(shù)名瞳别,就可以運行這段代碼征候。
函數(shù)的好處是一次編寫可反復使用。
函數(shù)的基本形式如下:
def 函數(shù)名(參數(shù)):
函數(shù)體
Python 定義函數(shù)用 def
語句祟敛,依次寫出函數(shù)名疤坝、括號、括號中的參數(shù)和冒號 :
馆铁,然后跑揉,在縮進塊中編寫函數(shù)體。函數(shù)可以沒有參數(shù)埠巨。示例:
# 沒參數(shù)的函數(shù)
def say_hello():
print 'Hello World!'
# 有參數(shù)的函數(shù)
def say_hello2(name):
print('hello ' + name)
函數(shù)的返回值
多數(shù)函數(shù)運行之后會返回一個結(jié)果历谍,這個結(jié)果就是返回值。函數(shù)的返回值用 return 語句返回乖订。
# 定義函數(shù)扮饶,函數(shù)名為 get_data
def get_data():
url = 'https://www.dytt8.net/'
data = requests.get(url, headers = headers).content
# 返回網(wǎng)頁數(shù)據(jù) data
return data
函數(shù)的調(diào)用
函數(shù)調(diào)用遵循先定義后調(diào)用的原則。
調(diào)用方法是在代碼中寫出 函數(shù)名+括號+參數(shù)
乍构。示例:
# 運行函數(shù)get_name()
get_name()
# 運行函數(shù)get_name()甜无,把運行結(jié)果賦值給 names
names = get_name()
字符串的編碼
如果在 Python2 中使用中文,就需要在代碼首行或第2行寫上
#coding:utf-8
這行注釋是為了告訴Python解釋器哥遮,按照UTF-8編碼格式讀取源代碼岂丘。
我們還需要將 requests.get
得到的數(shù)據(jù)轉(zhuǎn)換為 utf-8
編碼格式
Python2 使用unicode類型作為編碼的基礎(chǔ)類型。因此在做編碼轉(zhuǎn)換時眠饮,通常需要以unicode作為中間編碼奥帘,即先將其他編碼格式的字符串解碼(decode)成unicode,再從unicode編碼(encode)成另一種編碼格式仪召。
decode encode
str ---------> unicode --------->str
data1 = data.decode('gbk','ignore').encode('utf-8')
# 字符集 GBK 兼容 GB2312
# 先將gbk型轉(zhuǎn)換為 unicode寨蹋,再將 nnicode 轉(zhuǎn)換為 utf-8
# 'ignore' 表示忽略有異常的編碼,僅顯示有效的編碼
轉(zhuǎn)碼的時候一定要先搞明白扔茅,字符串是什么編碼格式已旧。查看網(wǎng)頁編碼方式:
查看網(wǎng)頁源代碼,charset=
后面的就是召娜。
這是教程的第五篇了运褪,是不是感覺啰嗦且無趣。
剛開始我們以詳細為主,后面會加快速度秸讹,并增加有趣的東西檀咙。
教程目錄:
0.《簡介及準備》
1.《爬單個圖片》
2.《下載一組網(wǎng)頁上的圖片》
3.《輸出一個網(wǎng)頁上的文字》
4.《獲取電影天堂最新電影名稱》
5.《糗事百科爬蟲》
20181130