本系列預設各位擁有基本的python能力,對各種資料結構、套件、模組等有一定概念就行了。
本文的範例都是在python 3.10下操作的。

requests是什麼?

簡單來說就是能讓你抓取整個網頁的東西,也能夠丟上去一些東西。
比較常用到的有下列功能。

  • get
  • post
  • session

python預設並沒有安裝,所以要先用pip安裝下。

1
pip install requests

安裝完後在寫程式前也記得先import

1
import requests

get

基本上就是抓下網頁。在抓取網頁時加上昨天提到的header比較不會被擋下來。

舉例來說:

1
2
3
4
5
6
7
8
9
import requests

headers = {
'Users-agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86 64; rv:91.0) Gecko/20100101 Firefox/91.0',
}
url = '你想爬的網站'
r = requests.get(url, headers = headers)

print(r.text)

上述的程式應該會把網頁的html印在終端機,
可以填入各種網址試試看這樣的程式會印出什麼。
當然單純只做這樣被擋下來而只會顯示respone<XXX>的機率也不低就是。
也可以試試看換個header看網頁會不會有差異。

總之抓下來的單純html當然是沒什麼用,要解析html並取出其中有用的資訊的話就要靠後面幾天會提到的bs4跟lxml了。

post

能夠丟字串或json檔上去,在需要給網站資訊時會用到。
舉例來說,投票機器人。
但一時之間想不到什麼很好的網站舉例。

session

能夠在多個請求中保持一些數據。
如果網站會用到cookie的話就需要使用這個。

舉例來說你用session登入一個網站後,之後在用這個物件抓取該網站其他頁面也會默認你是登入的。
但一時之間想不到什麼很好的網站舉例。