問題:想將爬蟲功能定義成一個函數,但困惑於如何調用參數
url = 'http://xxxx.com.cn'
resp = requests.get(url)
soup = BeautifulSoup(resp.text, "html.parser")
格式一:soup.find_all('div', attrs={'class': 'cnt1'})
格式二:soup.find_all('img', attrs={'class': 'by_img'})[0].get('src')
研究了一番相關知識,總結如下:
一、參數的幾種類型:
1、位置參數:
函數調用時的數量、位置、參數類型必須和定義時的一致。必須按順序傳全部參數。
2、默認參數:
函數定義時,爲參數設置一個默認值,當函數調用時,沒有傳入這個參數值,直接使用這個默認值。默認參數必須指向不可變對象。
3、可變參數:
*args:這種形式表示接受任意多個實際參數將其放到一個元組tuple中。
4、關鍵字參數:
**kwargs:這種形式表示接受任意多個實際參數將其放到一個字典dict中。也屬於一種可變參數。
它們之間的排列順序爲:必選參數 -> 默認參數 -> 可變參數 -> 關鍵字參數。
二、函數參數的引用:
三、爬取數據
resp = requests.get(url)
resp.encoding = 'utf-8'
soup = BeautifulSoup(resp.text, "html.parser")
data1 = soup.find_all('div', attrs={'class': 'cnt1'})
data2 = soup.find_all('img', attrs={'class': 'by_img'})[0].get('src')
四、編寫函數與調試
函數定義:
調用函數: