國立臺灣大學

#python 自動爬PTT文章 關鍵字寄信分享

2019年5月15日 23:26
最近想要有一個功能 可以自動爬ptt文章標題 有特定關鍵字寄信通知我 code如下: ==== import requests from bs4 import BeautifulSoup import smtplib from email.mime.text import MIMEText url = "https://www.ptt.cc/bbs/Tech_Job/index.html" def get_all_href(url): r = requests.get(url) soup = BeautifulSoup(r.text, "html.parser") results = soup.select("div.title") for item in results: a_item = item.select_one("a") title = item.text if a_item: print(title, 'https://www.ptt.cc/' + a_item.get('href')) if 'offer' in title or '半導體' in title: #自己設定想要的關鍵字 gmail_user = '你的帳號@gmail.com' gmail_password = '你的密碼' # your gmail password msg = MIMEText('https://www.ptt.cc/' + a_item.get('href')) msg['Subject'] = '標題1' + title msg['From'] = gmail_user msg['To'] = '想寄的帳號@gmail.com' server = smtplib.SMTP_SSL('smtp.gmail.com', 465) server.ehlo() server.login(gmail_user, gmail_password) server.send_message(msg) server.quit() print('Email sent!') print(title + '-Good') for page in range(1,2): r = requests.get(url) soup = BeautifulSoup(r.text, "html.parser") btn = soup.select('div.btn-group > a') up_page_href = btn[3]['href'] next_page_url = 'https://www.ptt.cc/' + up_page_href url = next_page_url get_all_href(url=url) ==== 格式好像跑掉 以下是原始檔網址 https://drive.google.com/file/d/1KHmda-ij5z-oFG6761TZp1aCzPNkqH3V/view?usp=sharing 哪個版可以自己改網址 關鍵字也可以自己改 現在在研究要如何爬內文 然後有關鍵字寄信給我 有人神知道怎麼做嗎XD
愛心
11
.回應 5
共 5 則回應
這則回應已被刪除
2019年5月15日 23:47
已經刪除的內容就像 Dcard 一樣,錯過是無法再相見的!
國立中正大學
爬內文很單純的就是 新增文章連結到 queue裡面 然後以selector或xpath選定html路徑 附上我寫的code 雖然是scrapy寫的 但寫法應該大同小異 parse_post就是要爬取文章內容的函數 https://github.com/aqweteddy/PttScrapyMongoDB/blob/master/ptt_crawl/spiders/ptt.py
國立中興大學
我最近也遇到爬內文的障礙QQ 爬不下乃
這則回應已被刪除
2019年5月17日 19:05
這則回應已被 Dcard 用戶檢舉含「交換個人資料 」的內容。
直接用別人寫好的別重造輪子 https://github.com/jwlin/ptt-web-crawler 寄信我就不熟了,查一下 smtp 的服務吧
馬上回應搶第 6 樓...