對了之前忘記講,本系列預設各位擁有基本的python能力,對各種資料結構、套件、模組等有一定概念就行了。
本文的範例都是在python 3.10下操作的。
本文有整理在部落格裡。
部落格裡面還有其他奇怪的文章,有空可以來看看喔。
簡單來說就是能讓你抓取整個網頁的東西,也能夠丟上去一些東西。
比較常用到的有下列功能。
python預設並沒有安裝,所以要先用pip安裝下。
pip install requests
安裝完後在寫程式前也記得先import
import requests
基本上就是抓下網頁。在抓取網頁時加上昨天提到的header比較不會被擋下來。
舉例來說:
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了。
能夠丟字串或json檔上去,在需要給網站資訊時會用到。
舉例來說,投票機器人。
但一時之間想不到什麼很好的網站舉例。
能夠在多個請求中保持一些數據。
如果網站會用到cookie的話就需要使用這個。
舉例來說你用session登入一個網站後,之後在用這個物件抓取該網站其他頁面也會默認你是登入的。
但一時之間想不到什麼很好的網站舉例。