研究Dialogflow與Line的連接之餘
決定繼續做新的功能!!
首先來個爬蟲不專業介紹
(想知道更多可以google一下 python爬蟲 就有一大堆可以看了XD)
這次嘗試做的範例是爬電影
我爬的是yahoo電影中的最新電影~~
1.安裝並import需要的套件
$pip install bs4
$pip install urllib.request
import requests
from bs4 import BeautifulSoup
from urllib.request import urlretrieve
2.寫入爬蟲程式
def movie():
target_url = 'https://movies.yahoo.com.tw/'
rs = requests.session()
res = rs.get(target_url, verify=False)
res.encoding = 'utf-8'
soup = BeautifulSoup(res.text, 'html.parser')
content = ""
for index, data in enumerate(soup.select('div.movielist_info h1 a')):
if index == 20:
return content
title = data.text
link = data['href']
content += '{}\n{}\n'.format(title, link)
return content
說明一下
target_url -> 要爬的網址
soup = BeautifulSoup(res.text, 'html.parser') -> 讀入網頁
select('div.movielist_info h1 a') -> 找Tag
Tag怎麼找呢?
找你想要的內容,按右鍵 > "檢查"就可找了
如下圖 標題與連結是在div.movielist_info > h1 > a
如果不確定有沒有找對
可以print出來看看
下圖是print出index 還有 data
所以title就是data中text的部分
link(電影資訊的連結)就是href的部分
於是乎就爬完了
爬完後加到Content
3.將內容回傳至Line
( Line ChatBot傳送文字的詳細程式碼可以參考Day14[Line ChatBot]Messaging types上集 )
if event.message.text == "最新電影":
a=movie()
line_bot_api.reply_message(event.reply_token,TextSendMessage(text=a))
4.Demo!!
點入連結就可以連到yahoo電影中該電影的介紹喔!
不好意思,我都照著程式碼做,先前的訊息類型都有成功,可是到了這階段的爬蟲就沒有回應,好奇怪...
程式碼應該都不需要再變動?