iT邦幫忙

2022 iThome 鐵人賽

DAY 5
0

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


本文有整理在部落格裡。
部落格裡面還有其他奇怪的文章,有空可以來看看喔。


requests是什麼?

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

  • get
  • post
  • session

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

pip install requests

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

import requests

get

基本上就是抓下網頁。在抓取網頁時加上昨天提到的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了。


post

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


session

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

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


上一篇
DAY4、robots.txt&header
下一篇
Day6、selenium基礎介紹
系列文
爬蟲基礎入門與實際應用30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言