python-beautifulsoup-tw116/TW116.py
使用工具:
- python
- BeautifulSoup
- urllib.request
- Django.models建立的SQL tablename:tw116
- telegram
- langconv
2017/7/26 updated
說明:
1.使用 python beautifulsoup 4 web crawler 練習爬蟲電影網站tw116.com
2.tw116各影片分類,1頁爬取10部電影資料:
---網址 : /url/
---狀態 : 未完結、完結、連載至X集
---上傳日期: YYYY-MM-DD
*.比對tw116資料庫,判斷10個網址是否為新資料
models.tw116.objects.filter(url__contains=url)
*.如果資料庫沒有相同網址,新增一筆電影資料
aaa[v] = url
*.如果有該網址資料但狀態資料不同,更新該電影的狀態資料
if len(filter_url.filter(state__exact=simple2tradition(status)):
filter_url.update(up_date=simple2tradition(update),state=simple2tradition(url)
以下為未完成項目
*.*圖片網址需要header,否則urllib2.urlretrieve抓下來會顯示 HTTP Error 403: Forbidden 錯誤。(暫時不打算,telegram發送url時會有預覽圖)
編輯記錄
update 20170727
- 把爬蟲重複部分定義成 htmlsoup()的function
update 20170808
1. 上傳了 tw116mv_1.py、langconv.py、zh_wiki.py 三個檔案。
2. 新增功能 :
(1)簡體轉為繁體內容 def simple2tradition(line) 內容有稍微修改,網路上的內容有誤,需要先轉Str.encode,再decode成('utf-8')
(2)發送telegram新增或是更新的電影內容
(3)判斷第一層頁面10個網址是否有更新連載狀態
(4)模組爬蟲定義為 def tw116_movie(tittme,typename)
(5)外層抓取資料為:上傳日期、連載狀態、電影網址、電影縮圖
(6)models.tw116.objects.filter(url__contains=網址)
相當於 select * from tw116 where url like %網址%
update 20170905
3.已更新描述的部分。