2024年3月12日 星期二

Python 學習筆記 : 用 technews-tw 爬台灣科技新聞網站 (一)

我在 "Python Bible 實戰聖經" (碁峰, 2021) 這本書第二章讀到使用 technews-tw 套件爬取台灣四大科技新聞網站 (ithome 電腦報, orange 科技報橘, business 數位時代, inside 硬塞的) 的介紹, 今日得空便實作一番. 

不過實際測試卻發現, 此套件已經於 2023 年停止對 orange 科技報橘的支援, 可能是該網站變動頻繁, 使套件維護變得很困難, 參考此套件之 GitHub 說明 : 

https://github.com/WisChang005/technews_tw


一. 安裝 technews-tw 套件 :

使用 pip 直接安裝 :

pip install technews-tw

D:\python\test>pip install technews-tw  
Collecting technews-tw
  Downloading technews_tw-1.3.5-py3-none-any.whl.metadata (2.3 kB)
Collecting bs4 (from technews-tw)
  Downloading bs4-0.0.2-py2.py3-none-any.whl.metadata (411 bytes)
Requirement already satisfied: requests in c:\users\tony1\appdata\roaming\python\python310\site-packages (from technews-tw) (2.31.0)
Requirement already satisfied: html5lib in c:\users\tony1\appdata\roaming\python\python310\site-packages (from technews-tw) (1.1)
Requirement already satisfied: lxml in c:\users\tony1\appdata\roaming\python\python310\site-packages (from technews-tw) (4.9.3)
Collecting twine (from technews-tw)
  Downloading twine-5.0.0-py3-none-any.whl.metadata (3.3 kB)
Requirement already satisfied: wheel in c:\users\tony1\appdata\local\programs\thonny\lib\site-packages (from technews-tw) (0.41.1)
Requirement already satisfied: setuptools in c:\users\tony1\appdata\local\programs\thonny\lib\site-packages (from technews-tw) (65.5.0)
Requirement already satisfied: beautifulsoup4 in c:\users\tony1\appdata\roaming\python\python310\site-packages (from bs4->technews-tw) (4.12.2)
Requirement already satisfied: six>=1.9 in c:\users\tony1\appdata\local\programs\thonny\lib\site-packages (from html5lib->technews-tw) (1.16.0)
Requirement already satisfied: webencodings in c:\users\tony1\appdata\roaming\python\python310\site-packages (from html5lib->technews-tw) (0.5.1)
Requirement already satisfied: charset-normalizer<4,>=2 in c:\users\tony1\appdata\roaming\python\python310\site-packages (from requests->technews-tw) (3.2.0)
Requirement already satisfied: idna<4,>=2.5 in c:\users\tony1\appdata\roaming\python\python310\site-packages (from requests->technews-tw) (3.4)
Requirement already satisfied: urllib3<3,>=1.21.1 in c:\users\tony1\appdata\roaming\python\python310\site-packages (from requests->technews-tw) (2.1.0)
Requirement already satisfied: certifi>=2017.4.17 in c:\users\tony1\appdata\roaming\python\python310\site-packages (from requests->technews-tw) (2023.7.22)
Collecting pkginfo>=1.8.1 (from twine->technews-tw)
  Downloading pkginfo-1.10.0-py3-none-any.whl.metadata (11 kB)
Collecting readme-renderer>=35.0 (from twine->technews-tw)
  Downloading readme_renderer-43.0-py3-none-any.whl.metadata (2.8 kB)
Collecting requests-toolbelt!=0.9.0,>=0.8.0 (from twine->technews-tw)
  Downloading requests_toolbelt-1.0.0-py2.py3-none-any.whl.metadata (14 kB)
Requirement already satisfied: importlib-metadata>=3.6 in c:\users\tony1\appdata\roaming\python\python310\site-packages (from twine->technews-tw) (6.8.0)
Collecting keyring>=15.1 (from twine->technews-tw)
  Downloading keyring-24.3.1-py3-none-any.whl.metadata (20 kB)
Collecting rfc3986>=1.4.0 (from twine->technews-tw)
  Downloading rfc3986-2.0.0-py2.py3-none-any.whl.metadata (6.6 kB)
Requirement already satisfied: rich>=12.0.0 in c:\users\tony1\appdata\roaming\python\python310\site-packages (from twine->technews-tw) (13.5.3)
Requirement already satisfied: zipp>=0.5 in c:\users\tony1\appdata\roaming\python\python310\site-packages (from importlib-metadata>=3.6->twine->technews-tw) (3.17.0)
Collecting jaraco.classes (from keyring>=15.1->twine->technews-tw)
  Downloading jaraco.classes-3.3.1-py3-none-any.whl.metadata (2.7 kB)
Requirement already satisfied: pywin32-ctypes>=0.2.0 in c:\users\tony1\appdata\roaming\python\python310\site-packages (from keyring>=15.1->twine->technews-tw) (0.2.2)
Collecting nh3>=0.2.14 (from readme-renderer>=35.0->twine->technews-tw)
  Downloading nh3-0.2.15-cp37-abi3-win_amd64.whl.metadata (1.8 kB)
Requirement already satisfied: docutils>=0.13.1 in c:\users\tony1\appdata\local\programs\thonny\lib\site-packages (from readme-renderer>=35.0->twine->technews-tw) (0.20.1)
Requirement already satisfied: Pygments>=2.5.1 in c:\users\tony1\appdata\roaming\python\python310\site-packages (from readme-renderer>=35.0->twine->technews-tw) (2.16.1)
Requirement already satisfied: markdown-it-py>=2.2.0 in c:\users\tony1\appdata\roaming\python\python310\site-packages (from rich>=12.0.0->twine->technews-tw) (3.0.0)
Requirement already satisfied: soupsieve>1.2 in c:\users\tony1\appdata\roaming\python\python310\site-packages (from beautifulsoup4->bs4->technews-tw) (2.4.1)
Requirement already satisfied: mdurl~=0.1 in c:\users\tony1\appdata\roaming\python\python310\site-packages (from markdown-it-py>=2.2.0->rich>=12.0.0->twine->technews-tw) (0.1.2)
Collecting more-itertools (from jaraco.classes->keyring>=15.1->twine->technews-tw)
  Downloading more_itertools-10.2.0-py3-none-any.whl.metadata (34 kB)
Downloading technews_tw-1.3.5-py3-none-any.whl (12 kB)
Downloading bs4-0.0.2-py2.py3-none-any.whl (1.2 kB)
Downloading twine-5.0.0-py3-none-any.whl (37 kB)
Downloading keyring-24.3.1-py3-none-any.whl (38 kB)
Downloading pkginfo-1.10.0-py3-none-any.whl (30 kB)
Downloading readme_renderer-43.0-py3-none-any.whl (13 kB)
Downloading requests_toolbelt-1.0.0-py2.py3-none-any.whl (54 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 54.5/54.5 kB 941.3 kB/s eta 0:00:00
Downloading rfc3986-2.0.0-py2.py3-none-any.whl (31 kB)
Downloading nh3-0.2.15-cp37-abi3-win_amd64.whl (563 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 563.7/563.7 kB 1.5 MB/s eta 0:00:00
Downloading jaraco.classes-3.3.1-py3-none-any.whl (6.8 kB)
Downloading more_itertools-10.2.0-py3-none-any.whl (57 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 57.0/57.0 kB 3.1 MB/s eta 0:00:00
Installing collected packages: nh3, rfc3986, readme-renderer, pkginfo, more-itertools, requests-toolbelt, jaraco.classes, bs4, keyring, twine, technews-tw
Successfully installed bs4-0.0.2 jaraco.classes-3.3.1 keyring-24.3.1 more-itertools-10.2.0 nh3-0.2.15 pkginfo-1.10.0 readme-renderer-43.0 requests-toolbelt-1.0.0 rfc3986-2.0.0 technews-tw-1.3.5 twine-5.0.0


二. 檢視套件內容 :

雖然安裝時的套件名稱為 technews-tw, 但實際匯入時的套件名稱是 technews, 先用 dir() 觀察套件內容 : 

>>> import technews   
>>> dir(technews)   
['EmailContentHelper', 'TechNews', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__', 'crawlers', 'mail_helper', 'technews_helper']

可以使用下列自訂模組 members 的 list_members() 來檢視內容 : 

def list_members(parent_obj):
    members=dir(parent_obj)
    parent_obj_name=?????     
    for mbr in members:
        child_obj=eval(parent_obj_name + '.' + mbr) 
        if not mbr.startswith('_'):
          print(mbr, type(child_obj))    

將此函式存成 members.py 模組, 放在目前供作目錄下, 然後匯入其 list_members() 函式來檢視 technews 套件 : 

>>> from members import list_members   
>>> list_members(technews)   
EmailContentHelper <class 'type'>
TechNews <class 'type'>
crawlers <class 'module'>
mail_helper <class 'module'>
technews_helper <class 'module'>

我們會用到的是其中的 TechNews 類別, 繼續用此方法來檢視此類別 :

>>> from technews import TechNews  
>>> list_members(TechNews)     
get_news_by_page <class 'function'>
get_today_news <class 'function'>

可見 TechNews 類別只有兩個函式 (建立實體後就是方法), 其中 get_today_news() 函式用來取得今天的最新文章 (傳入參數是四大科技新聞網站的英文名稱例如 'orange'); 而 get_news_by_page() 函式則用來取得最近 n 日內的所有科技新聞, 傳入參數為指定之天數.



三. 爬取今日新聞 :

首先呼叫 TechNesw 類別的建構子 TechNesw() 並傳入網站名稱例如 'ithome', 它會傳回一個 TechNews 物件 :

>>> from technews import TechNews   
>>> news=TechNews('ithome')       
>>> type(news)     
<class 'technews.technews_helper.TechNews'>   

用 dir() 與 list_members() 檢視此物件 :

>>> dir(news)  
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_init_news_object', 'get_news_by_page', 'get_today_news', 'news_name', 'news_obj']
>>> list_members(news)   
get_news_by_page <class 'method'>
get_today_news <class 'method'>
news_name <class 'str'>
news_obj <class 'technews.crawlers.ithome.iThome'>

可見 TechNews 物件比類別多出兩個成員 : news_name 字串與 news_obj 物件, 前者紀錄新聞網站名稱, 後者為該新聞網站之爬蟲物件 :

>>> news.news_name   
'ithome'
>>> news.news_obj   
<technews.crawlers.ithome.iThome object at 0x0000022AB66BB310>

呼叫 TechNews 物件的 get_today_news() 方法會傳回該網站的今日科技新聞的字典物件, 取得的新聞資料 (標題, 日期, URL 等) 會放在 news_contents 屬性裡 :

>>> today_news=news.get_today_news()    
>>> today_news    
{'timestamp': 1710197043.7131379, 'news_page_title': 'iThome', 'news_contents': {}, 'news_counts': 0}

此處因為爬取時間太早, 故 news_counts 屬性為 0, 而 news_contents 為空字典. 一般在早上八點後應該就可以爬取到資料 :

>>> today_news    
{'timestamp': 1710203639.9777424, 'news_page_title': 'iThome', 'news_contents': {'17bed16d5c1012f0b2b065c961ccf6cc': {'link': 'https://www.ithome.com.tw/news/161712', 'image': 'https://s4.itho.me/sites/default/files/styles/picture_size_small/public/field/image/header-introducing-the-fused-orientation-provider-api-consistent-device-orientation-for-all-.png?itok=3i2nzoAE', 'title': 'Android地圖應用不再亂指路,Google公開更準確的裝置朝向API', 'date': '2024-03-12'}, '4c8735c116f47019b7f75a216a804a3b': {'link': 'https://www.ithome.com.tw/news/161711', 'image': 'https://s4.itho.me/sites/default/files/styles/picture_size_small/public/field/image/blog_denoising_safari_anti_fingerprinting_techniques.png?itok=RPbopH1C', 'title': 'Safari 17新加入的進階音訊指紋辨識保護已經被破解', 'date': '2024-03-12'}}, 'news_counts': 2}

可見已爬取到兩條新聞, 回傳值為一個三層的字典結構 : 

{'timestamp': TTT,
  'news_page_title': PAGE-1, 
  'news_contents': {'NEWS-1': {'link': URL-1, 
                                                   'image': IMG-1,
                                                   'title': TITLE-1, 
                                                   'date': DAT1-1},
                               'NEWS-2': {'link': URL-2, 
                                                   'image': IMG-2,
                                                   'title': TITLE-2, 
                                                   'date': DAT1-2},
                               ,,,...
                               }
  }

新聞內容放在 news_contnets 屬性下, 先將其取出存放在變數 : 

>>> news_contents=today_news['news_contents']    
>>> news_contents     
{'17bed16d5c1012f0b2b065c961ccf6cc': {'link': 'https://www.ithome.com.tw/news/161712', 'image': 'https://s4.itho.me/sites/default/files/styles/picture_size_small/public/field/image/header-introducing-the-fused-orientation-provider-api-consistent-device-orientation-for-all-.png?itok=3i2nzoAE', 'title': 'Android地圖應用不再亂指路,Google公開更準確的裝置朝向API', 'date': '2024-03-12'}, '4c8735c116f47019b7f75a216a804a3b': {'link': 'https://www.ithome.com.tw/news/161711', 'image': 'https://s4.itho.me/sites/default/files/styles/picture_size_small/public/field/image/blog_denoising_safari_anti_fingerprinting_techniques.png?itok=RPbopH1C', 'title': 'Safari 17新加入的進階音訊指紋辨識保護已經被破解', 'date': '2024-03-12'}}

可見每一則新聞都有各自的 key, 新聞內容是放在值裡面, 只要用迴圈迭代此 key 的值即可取得新聞內容, 利用 title, link, 與 date 屬性即可分別取得新聞的標題, 連結與日期 : 

>>> for key in news_contents:    
  contents=news_contents[key]    # 取得新聞內容 (字典)
  print('標題:', contents['title'])  
  print('連結:', contents['link'])   
  print('日期:', contents['date'])  
  print('----')   
  
標題: Android地圖應用不再亂指路,Google公開更準確的裝置朝向API
日期: 2024-03-12
----
標題: Safari 17新加入的進階音訊指紋辨識保護已經被破解
日期: 2024-03-12
----

注意, 超連結是我額外加上去的. 


三. 爬取最近 N 日新聞 :

呼叫 TechNews 物件的方法 get_news_by_page() 並傳入天數 N 可以取得近 N 日的新聞, 例如取得最近一天的新聞 : 

>>> from technews import TechNews   
>>> news=TechNews('ithome')  
>>> recent_news=news.get_news_by_page(1)   
>>> recent_news     
{'timestamp': 1710209165.2912116, 'news_page_title': 'iThome', 'news_contents': {'111631c3b24ce435f66ff57c59d417d8': {'link': 'https://www.ithome.com.tw/news/161714', 'image': 'https://s4.itho.me/sites/default/files/styles/picture_size_small/public/field/image/011_-_large_language_models_on-device_with_mediapipe_and_tensorflow_lite_-_-_developers.googleblog.com_.png?itok=TgeBXlbh', 'title': 'Google讓瀏覽器、Android手機、iPhone都可執行大型語言模型', 'date': '2024-03-12'}, '17bed16d5c1012f0b2b065c961ccf6cc': {'link': 'https://www.ithome.com.tw/news/161712', 'image': 'https://s4.itho.me/sites/default/files/styles/picture_size_small/public/field/image/header-introducing-the-fused-orientation-provider-api-consistent-device-orientation-for-all-.png?itok=3i2nzoAE', 'title': 'Android地圖應用不再亂指路,Google公開更準確的裝置朝向API', 'date': '2024-03-12'}, '4c8735c116f47019b7f75a216a804a3b': {'link': 'https://www.ithome.com.tw/news/161711', 'image': 'https://s4.itho.me/sites/default/files/styles/picture_size_small/public/field/image/blog_denoising_safari_anti_fingerprinting_techniques.png?itok=RPbopH1C', 'title': 'Safari 17新加入的進階音訊指紋辨識保護已經被破解', 'date': '2024-03-12'}, '88e4ccede6c7f8e4c6d472c0a1f63899': {'link': 'https://www.ithome.com.tw/news/161710', 'image': 'https://s4.itho.me/sites/default/files/styles/picture_size_small/public/field/image/ying_mu_xie_qu_hua_mian_2024-03-11_144829.png?itok=VKvAP9cD', 'title': 'Fintech周報第233期:摩根士丹利揭露生成式AI發展策略,要以AI助理促進顧問、顧客和平臺三方無縫互動', 'date': '2024-03-11'}, 'bcf58f7506cb665f52b277eaaa293c2d': {'link': 'https://www.ithome.com.tw/news/161709', 'image': 'https://s4.itho.me/sites/default/files/styles/picture_size_small/public/field/image/20240311.jpg?itok=63ICJIL3', 'title': '【資安日報】3月11日,為隱匿攻擊流量,駭客濫用虛擬化平臺QEMU設置網路通訊隧道', 'date': '2024-03-11'}, '84122437386ac3eba6c97c2673748322': {'link': 'https://www.ithome.com.tw/news/161705', 'image': 'https://s4.itho.me/sites/default/files/styles/picture_size_small/public/field/image/0609-ai-shi_yi_tu_-tu_pian_lai_yuan_-geralt_on_pixabay-960_0.jpg?itok=tzhMxZhH', 'title': 'GPT-4競爭者報到:Gemini 1.5、Mistral Large、Claude 3 Opus與Inflection-2.5', 'date': '2024-03-11'}, '1b37b718e6ad602724ba5c89c5727cd0': {'link': 'https://www.ithome.com.tw/news/161704', 'image': 'https://s4.itho.me/sites/default/files/styles/picture_size_small/public/field/image/1102-ai-photo_by_steve_johnson_on_unsplash-960_1.jpg?itok=sMOmLfa7', 'title': '印度政府揭露IndiaAI,將投入12億美元的預算來發展AI', 'date': '2024-03-11'}, 'eca244c0d345578ecdadb28e3db1decd': {'link': 'https://www.ithome.com.tw/tech/161699', 'image': 'https://s4.itho.me/sites/default/files/styles/picture_size_small/public/arm_neoverse_css-main.jpg?itok=2hyF9E0N', 'title': 'Arm資料中心運算平臺Neoverse邁入第三代,正式增設結合CPU與系統IP的運算子系統', 'date': '2024-03-11'}, '8211ae07720ff436567f2a2465e7f1a2': {'link': 'https://www.ithome.com.tw/news/161703', 'image': 'https://s4.itho.me/sites/default/files/styles/picture_size_small/public/field/image/1012-cyber-security-microsoft-guan_fang_tu_pian_-960.jpg?itok=ePC4XRIK', 'title': '微軟遭俄羅斯駭客竊取程式碼、存取內部系統', 'date': '2024-03-11'}, '989c02c3aca1102ced057801f50eea14': {'link': 'https://www.ithome.com.tw/news/161702', 'image': 'https://s4.itho.me/sites/default/files/styles/picture_size_small/public/field/image/0518-google-google_health-960_0.jpg?itok=UGiAX8iz', 'title': '公然抗議Google和以色列雲端計畫合約的Google員工遭到解聘', 'date': '2024-03-11'}, 'ab27584158de035ec0bb8c6109f57afe': {'link': 'https://www.ithome.com.tw/news/161701', 'image': 'https://s4.itho.me/sites/default/files/styles/picture_size_small/public/field/image/0311-direct-to-cell-starlink-960.jpg?itok=3_Zxq0Qn', 'title': 'Starlink在iPhone、Pixel、Galaxy手機上成功測試傳送文字訊息', 'date': '2024-03-11'}, '9717760dc5f7af83f20698398b974458': {'link': 'https://www.ithome.com.tw/news/161700', 'image': 'https://s4.itho.me/sites/default/files/styles/picture_size_small/public/field/image/zi_an_zhou_bao_20240309.jpg?itok=LidaF5ds', 'title': '【資安週報】2024年3月4日到3月8日', 'date': '2024-03-11'}, 'ed6bcf2c3854a02437afe1fc8ebe2623': {'link': 'https://www.ithome.com.tw/news/161698', 'image': 'https://s4.itho.me/sites/default/files/styles/picture_size_small/public/field/image/007_-_salesforce_launches_einstein_1_studio_low-code_ai_tools_for_customiz_-_www.salesforce.com_.png?itok=2ay2xDcs', 'title': 'Salesforce推CRM低程式碼AI自定義工具Einstein 1 Studio', 'date': '2024-03-11'}, '913f72dbfb7127a6d49d602d7e012be1': {'link': 'https://www.ithome.com.tw/news/161692', 'image': 'https://s4.itho.me/sites/default/files/styles/picture_size_small/public/field/image/006_-_image2.png_1999x1117_-_blogger.googleusercontent.com_.png?itok=Y5ZVXR4p', 'title': 'Google應用社會學習,讓模型間不需交換原始資料就可轉移知識', 'date': '2024-03-11'}, 'c2b1da3db5d76516acb154d307bf18ef': {'link': 'https://www.ithome.com.tw/news/161675', 'image': 'https://s4.itho.me/sites/default/files/styles/picture_size_small/public/field/image/openssf-guac.png?itok=tECsOFm8', 'title': '軟體安全評估工具GUAC現成為OpenSSF旗下專案', 'date': '2024-03-11'}, '62b59db4edd588d120600602d03e6b5a': {'link': 'https://www.ithome.com.tw/review/161465', 'image': '…

傳回值同樣是一個字典, 結構與上面呼叫 today_news() 方法傳回的字典幾乎一樣, 唯一的不同是 get_news_by_page() 傳回的字典沒有 news_count 這個屬性. 

可見雖然傳入 N=1, 但其實會傳回 3/7~3/12 日的新聞, 而且是按時間倒序排列 (最近的放前面). 新聞內容同樣放在 news_contents 裡面, 先取出放在變數裡 : 

>>> news_contents=recent_news['news_contents']   
>>> news_contents   
{'111631c3b24ce435f66ff57c59d417d8': {'link': 'https://www.ithome.com.tw/news/161714', 'image': 'https://s4.itho.me/sites/default/files/styles/picture_size_small/public/field/image/011_-_large_language_models_on-device_with_mediapipe_and_tensorflow_lite_-_-_developers.googleblog.com_.png?itok=TgeBXlbh', 'title': 'Google讓瀏覽器、Android手機、iPhone都可執行大型語言模型', 'date': '2024-03-12'}, '17bed16d5c1012f0b2b065c961ccf6cc': {'link': 'https://www.ithome.com.tw/news/161712', 'image': 'https://s4.itho.me/sites/default/files/styles/picture_size_small/public/field/image/header-introducing-the-fused-orientation-provider-api-consistent-device-orientation-for-all-.png?itok=3i2nzoAE', 'title': 'Android地圖應用不再亂指路,Google公開更準確的裝置朝向API', 'date': '2024-03-12'}, '4c8735c116f47019b7f75a216a804a3b': {'link': 'https://www.ithome.com.tw/news/161711', 'image': 'https://s4.itho.me/sites/default/files/styles/picture_size_small/public/field/image/blog_denoising_safari_anti_fingerprinting_techniques.png?itok=RPbopH1C', 'title': 'Safari 17新加入的進階音訊指紋辨識保護已經被破解', 'date': '2024-03-12'}, '88e4ccede6c7f8e4c6d472c0a1f63899': {'link': 'https://www.ithome.com.tw/news/161710', 'image': 'https://s4.itho.me/sites/default/files/styles/picture_size_small/public/field/image/ying_mu_xie_qu_hua_mian_2024-03-11_144829.png?itok=VKvAP9cD', 'title': 'Fintech周報第233期:摩根士丹利揭露生成式AI發展策略,要以AI助理促進顧問、顧客和平臺三方無縫互動', 'date': '2024-03-11'}, 'bcf58f7506cb665f52b277eaaa293c2d': {'link': 'https://www.ithome.com.tw/news/161709', 'image': 'https://s4.itho.me/sites/default/files/styles/picture_size_small/public/field/image/20240311.jpg?itok=63ICJIL3', 'title': '【資安日報】3月11日,為隱匿攻擊流量,駭客濫用虛擬化平臺QEMU設置網路通訊隧道', 'date': '2024-03-11'}, '84122437386ac3eba6c97c2673748322': {'link': 'https://www.ithome.com.tw/news/161705', 'image': 'https://s4.itho.me/sites/default/files/styles/picture_size_small/public/field/image/0609-ai-shi_yi_tu_-tu_pian_lai_yuan_-geralt_on_pixabay-960_0.jpg?itok=tzhMxZhH', 'title': 'GPT-4競爭者報到:Gemini 1.5、Mistral Large、Claude 3 Opus與Inflection-2.5', 'date': '2024-03-11'}, '1b37b718e6ad602724ba5c89c5727cd0': {'link': 'https://www.ithome.com.tw/news/161704', 'image': 'https://s4.itho.me/sites/default/files/styles/picture_size_small/public/field/image/1102-ai-photo_by_steve_johnson_on_unsplash-960_1.jpg?itok=sMOmLfa7', 'title': '印度政府揭露IndiaAI,將投入12億美元的預算來發展AI', 'date': '2024-03-11'}, 'eca244c0d345578ecdadb28e3db1decd': {'link': 'https://www.ithome.com.tw/tech/161699', 'image': 'https://s4.itho.me/sites/default/files/styles/picture_size_small/public/arm_neoverse_css-main.jpg?itok=2hyF9E0N', 'title': 'Arm資料中心運算平臺Neoverse邁入第三代,正式增設結合CPU與系統IP的運算子系統', 'date': '2024-03-11'}, '8211ae07720ff436567f2a2465e7f1a2': {'link': 'https://www.ithome.com.tw/news/161703', 'image': 'https://s4.itho.me/sites/default/files/styles/picture_size_small/public/field/image/1012-cyber-security-microsoft-guan_fang_tu_pian_-960.jpg?itok=ePC4XRIK', 'title': '微軟遭俄羅斯駭客竊取程式碼、存取內部系統', 'date': '2024-03-11'}, '989c02c3aca1102ced057801f50eea14': {'link': 'https://www.ithome.com.tw/news/161702', 'image': 'https://s4.itho.me/sites/default/files/styles/picture_size_small/public/field/image/0518-google-google_health-960_0.jpg?itok=UGiAX8iz', 'title': '公然抗議Google和以色列雲端計畫合約的Google員工遭到解聘', 'date': '2024-03-11'}, 'ab27584158de035ec0bb8c6109f57afe': {'link': 'https://www.ithome.com.tw/news/161701', 'image': 'https://s4.itho.me/sites/default/files/styles/picture_size_small/public/field/image/0311-direct-to-cell-starlink-960.jpg?itok=3_Zxq0Qn', 'title': 'Starlink在iPhone、Pixel、Galaxy手機上成功測試傳送文字訊息', 'date': '2024-03-11'}, '9717760dc5f7af83f20698398b974458': {'link': 'https://www.ithome.com.tw/news/161700', 'image': 'https://s4.itho.me/sites/default/files/styles/picture_size_small/public/field/image/zi_an_zhou_bao_20240309.jpg?itok=LidaF5ds', 'title': '【資安週報】2024年3月4日到3月8日', 'date': '2024-03-11'}, 'ed6bcf2c3854a02437afe1fc8ebe2623': {'link': 'https://www.ithome.com.tw/news/161698', 'image': 'https://s4.itho.me/sites/default/files/styles/picture_size_small/public/field/image/007_-_salesforce_launches_einstein_1_studio_low-code_ai_tools_for_customiz_-_www.salesforce.com_.png?itok=2ay2xDcs', 'title': 'Salesforce推CRM低程式碼AI自定義工具Einstein 1 Studio', 'date': '2024-03-11'}, '913f72dbfb7127a6d49d602d7e012be1': {'link': 'https://www.ithome.com.tw/news/161692', 'image': 'https://s4.itho.me/sites/default/files/styles/picture_size_small/public/field/image/006_-_image2.png_1999x1117_-_blogger.googleusercontent.com_.png?itok=Y5ZVXR4p', 'title': 'Google應用社會學習,讓模型間不需交換原始資料就可轉移知識', 'date': '2024-03-11'}, 'c2b1da3db5d76516acb154d307bf18ef': {'link': 'https://www.ithome.com.tw/news/161675', 'image': 'https://s4.itho.me/sites/default/files/styles/picture_size_small/public/field/image/openssf-guac.png?itok=tECsOFm8', 'title': '軟體安全評估工具GUAC現成為OpenSSF旗下專案', 'date': '2024-03-11'}, '62b59db4edd588d120600602d03e6b5a': {'link': 'https://www.ithome.com.tw/review/161465', 'image': 'https://s4.itho.me/sites/default/files/styles/picture_size_small/public/nvidia_r…

每一則新聞都有其 key, 同樣用迴圈迭代此 key 的值即可取得新聞內容, 利用 title, link, 與 date 屬性即可分別取得新聞的標題, 連結與日期 :

>>> for key in news_contents:    
  contents=news_contents[key]    # 取得新聞內容 (字典)
  print('標題:', contents['title'])  
  print('連結:', contents['link'])   
  print('日期:', contents['date'])  
  print('----')   
  
標題: Google讓瀏覽器、Android手機、iPhone都可執行大型語言模型
連結: https://www.ithome.com.tw/news/161714
日期: 2024-03-12
----
標題: Android地圖應用不再亂指路,Google公開更準確的裝置朝向API
連結: https://www.ithome.com.tw/news/161712
日期: 2024-03-12
----
標題: Safari 17新加入的進階音訊指紋辨識保護已經被破解
連結: https://www.ithome.com.tw/news/161711
日期: 2024-03-12
----
標題: Fintech周報第233期:摩根士丹利揭露生成式AI發展策略,要以AI助理促進顧問、顧客和平臺三方無縫互動
連結: https://www.ithome.com.tw/news/161710
日期: 2024-03-11
----
標題: 【資安日報】3月11日,為隱匿攻擊流量,駭客濫用虛擬化平臺QEMU設置網路通訊隧道
連結: https://www.ithome.com.tw/news/161709
日期: 2024-03-11
----
標題: GPT-4競爭者報到:Gemini 1.5、Mistral Large、Claude 3 Opus與Inflection-2.5
連結: https://www.ithome.com.tw/news/161705
日期: 2024-03-11
----
標題: 印度政府揭露IndiaAI,將投入12億美元的預算來發展AI
連結: https://www.ithome.com.tw/news/161704
日期: 2024-03-11
----
標題: Arm資料中心運算平臺Neoverse邁入第三代,正式增設結合CPU與系統IP的運算子系統
連結: https://www.ithome.com.tw/tech/161699
日期: 2024-03-11
----
標題: 微軟遭俄羅斯駭客竊取程式碼、存取內部系統
連結: https://www.ithome.com.tw/news/161703
日期: 2024-03-11
----
標題: 公然抗議Google和以色列雲端計畫合約的Google員工遭到解聘
連結: https://www.ithome.com.tw/news/161702
日期: 2024-03-11
----
標題: Starlink在iPhone、Pixel、Galaxy手機上成功測試傳送文字訊息
連結: https://www.ithome.com.tw/news/161701
日期: 2024-03-11
----
標題: 【資安週報】2024年3月4日到3月8日
連結: https://www.ithome.com.tw/news/161700
日期: 2024-03-11
----
標題: Salesforce推CRM低程式碼AI自定義工具Einstein 1 Studio
連結: https://www.ithome.com.tw/news/161698
日期: 2024-03-11
----
標題: Google應用社會學習,讓模型間不需交換原始資料就可轉移知識
連結: https://www.ithome.com.tw/news/161692
日期: 2024-03-11
----
標題: 軟體安全評估工具GUAC現成為OpenSSF旗下專案
連結: https://www.ithome.com.tw/news/161675
日期: 2024-03-11
----
標題: 專業繪圖GPU增加選擇,輝達Ada世代產品提供入門款式
連結: https://www.ithome.com.tw/review/161465
日期: 2024-03-08
----
標題: Check Point中小企業NGFW添頂級款式,防護全開效能4Gbps
連結: https://www.ithome.com.tw/review/161663
日期: 2024-03-08
----
標題: Patronus AI發表可用來偵測LLM有否輸出侵權內容的CopyrightCatcher API
連結: https://www.ithome.com.tw/news/161674
日期: 2024-03-08
----
標題: Inflection釋出可比美GPT-4的Inflection-2.5模型,已部署於Pi聊天機器人
連結: https://www.ithome.com.tw/news/161671
日期: 2024-03-08
----
標題: PayPal、Venmo在美支援iPhone Tap to Pay
連結: https://www.ithome.com.tw/news/161670
日期: 2024-03-08
----
標題: 蘋果將讓歐盟用戶把iPhone或iCloud資料搬到Android平臺
連結: https://www.ithome.com.tw/news/161669
日期: 2024-03-08
----
標題: 記取教訓!2023上市櫃公司資安重訊的啟示
連結: https://www.ithome.com.tw/article/161665
日期: 2024-03-08
----
標題: 【個資保護成為企業無法迴避的挑戰】企業因個資外洩受罰也是資安重訊
連結: https://www.ithome.com.tw/news/161667
日期: 2024-03-08
----
標題: 【資安日報】3月8日,Linux惡意軟體攻擊鎖定DevOps常用的4種平臺
連結: https://www.ithome.com.tw/news/161668
日期: 2024-03-08
----
標題: 【2023年有23起資安事件重大訊息】上市櫃公司屢遭網路攻擊,中小企業災情大增
連結: https://www.ithome.com.tw/news/161666
日期: 2024-03-08
----
標題: 誠實為上策
連結: https://www.ithome.com.tw/voice/161662
日期: 2024-03-08
----
標題: 零售一手資料的另類玩法,本土C2C龍頭從百萬賣家數據挖寶
連結: https://www.ithome.com.tw/people/161661
日期: 2024-03-08
----
標題: Chrome瀏覽器將採用共用字典壓縮技術大幅提升壓縮效率
連結: https://www.ithome.com.tw/news/161664
日期: 2024-03-08
----
標題: 250+學者連署呼籲AI公司提供研究安全港
連結: https://www.ithome.com.tw/news/161660
日期: 2024-03-07
----
標題: 微軟工程主管要求董事會對Copilot Designer安全風險事件進行獨立調查
連結: https://www.ithome.com.tw/news/161659
日期: 2024-03-07
----

下面是爬數位時代 (business) 的結果 :

>>> from technews import TechNews   
>>> news=TechNews('business')  
>>> recent_news=news.get_news_by_page(1)   
>>> news_contents=recent_news['news_contents']  
>>> for key in news_contents:    
  contents=news_contents[key]    # 取得新聞內容 (字典)
  print('標題:', contents['title'])  
  print('連結:', contents['link'])   
  print('日期:', contents['date'])  
  print('----')  
  
標題: 國旅變更貴「一晚4660元」,旅客卻變多!晶華、寒舍營收反彈,真的回血了?
連結: https://www.bnext.com.tw/article/78570/regent-and-humble-revenue
日期: 2 小時前
----
標題: 攻擊鴻海子公司的LockBit一週就重生!資安3大攻擊趨勢揭密:威脅有哪些?
連結: https://www.bnext.com.tw/article/78571/cyber-security-2024-trendings
日期: 2 小時前
----
標題: Costco單季進帳上億的秘密武器:賣金條!台灣人也愛買,背後藏著巨頭哪些野心?
連結: https://www.bnext.com.tw/article/78559/costco-sell-gold-silver
日期: 3 小時前
----
標題: 高股息ETF有哪些?除了0056外還有嗎?10 檔熱門高股息 ETF懶人包一次看
連結: https://www.bnext.com.tw/article/78569/etf-compare
日期: 3 小時前
----
標題: 00939錯過募集還能買嗎?00939定期定額試算,跟0056、0050差在哪?一次看懂
連結: https://www.bnext.com.tw/article/78568/00939-etf
日期: 3 小時前
----
標題: 台灣foodpanda曾想賣給Uber Eats?公平會說話了!外送婚事告吹,但2個數字有亮點
連結: https://www.bnext.com.tw/article/78499/foodpanda-ubereat-taiwan-failed-to-merge
日期: 4 小時前
----
標題: 【圖解】Podcast最新趨勢:你會用YouTube聽嗎?「乾爹」藏在哪?一文看懂
連結: https://www.bnext.com.tw/article/78521/podcast-soundon-report-2023-trends
日期: 4 小時前
----
標題: 00929最新配息0.13元!00929 ETF懶人包:配息、成分股、選股邏輯一次掌握
連結: https://www.bnext.com.tw/article/77481/00929-etf
日期: 4 小時前
----
標題: 00940募集首日飆破645億元!00940怎麼買?成份股有什麼?現在上車來得及嗎?
連結: https://www.bnext.com.tw/article/78535/00940-etf
日期: 5 小時前
----
標題: 矽光子是什麼?真正的矽光子概念股有哪些?圖解矽光子原理
連結: https://www.bnext.com.tw/article/77079/what-is-silicon-photonics
日期: 7 小時前
----
標題: Z世代意思是什麼?嬰兒潮、X、Y、Z、α世代差在哪?一張圖理解「五代差異」
連結: https://www.bnext.com.tw/article/63653/marketing-5.0
日期: 8 小時前
----
標題: 直擊全台首座固態電池廠!輝能憑什麼打造「電動車聖杯」?關鍵就在這台印刷機!
連結: https://www.bnext.com.tw/article/78196/prologium-solid-state-battery
日期: 15 小時前
----

下面是爬硬塞的 (inside) 的結果 : 

>>> from technews import TechNews   
>>> news=TechNews('inside')  
>>> recent_news=news.get_news_by_page(1)   
>>> news_contents=recent_news['news_contents']  
>>> for key in news_contents:    
  contents=news_contents[key]    # 取得新聞內容 (字典)
  print('標題:', contents['title'])  
  print('連結:', contents['link'])   
  print('日期:', contents['date'])  
  print('----')   

標題: 川普認為TikTok 禁令可能會影響年輕人,且會讓 Facebook 成為一大受益者。川普曾批評 Meta 在美國國會動亂期,撤銷他 FB 和 IG 帳號。
連結: https://www.inside.com.tw/article/34445-trump-thinks-tiktok-ban-could-drive-kids-crazy
日期: 2024-03-12
----
標題: Airbnb 禁裝設室內監視器的新政策難以完全防止不肖人士裝隱藏攝影機,但至少能讓守規的房東不再在於出租的房屋放置任何鏡頭,讓房客住得安心一點。
連結: https://www.inside.com.tw/article/34442-airbnb-bans-indoor-cameras
日期: 2024-03-12
----
標題: 資料海嘯席捲、AI 狂飆時代來臨,完善的資料治理能使資料變成新石油。不分產業都希望結合 AI 分析技術,加速解鎖資料的力量。身兼 Google Cloud 和 SAP 技術合作夥伴的「Epic Cloud 聚上雲」,透過本文帶您探索 SAP BTP(業務技術平台)和 Google Cloud BigQuery 資料處理平台的整合運用之道,跟著聚上雲 from Data to Insights。
連結: https://www.inside.com.tw/article/34362-EpicCloud
日期: 2024-03-06
----
標題: 針對傳言,裕隆指出,現階段電馳利暫時無代理銷售業務。
連結: https://www.inside.com.tw/article/34444-geely-in-taiwan
日期: 2024-03-12
----
標題: 隨著社群平台 X 上的討論越來越激烈,也有人質疑「馬斯克嗆聲 OpenAI 不開源,那馬斯克旗下自家 Grok 不也是沒有開源?」然而,就在昨日馬斯克宣布本週將開源 Grok 程式碼,並且將這則貼文置頂於個人頁面上。
連結: https://www.inside.com.tw/article/34443-musk-xai-to-open-source-gork-this-week
日期: 2024-03-12
----
標題: 二月份,Arm 宣布發表次世代的 Neoverse V 系列:Neoverse V3 CPU 與 Neoverse CSS V3,為全球的合作夥伴提供一條最快的路徑,同時帶來顯著的效能、效率以及差異化的功能,滿足需要最高效能的工作負載與使用場景。
連結: https://www.inside.com.tw/article/34376-ARM
日期: 2024-03-05
----
標題: 分析師認為,其中一個關鍵是特斯拉的駕駛輔助硬體是否會成為標配,這個硬體的成本可能在 2,000 到 3,000 美元之間,佔掉不少生產成本。
連結: https://www.inside.com.tw/article/34441-tesla-2027-story-evercore-analysts-model-2-deliveries
日期: 2024-03-12
----
標題: Palantir 公司宣布贏得美國陸軍價值 1.78 億美元的合約,將為其打造一套名為「泰坦」的戰場情報系統。泰坦將被安裝在一輛大型卡車內,用於整合來自太空、高空、空中和地面的感應器數據,為美軍提供可操作的目標資訊,以增強任務指揮和遠端精準打擊能力。
連結: https://www.inside.com.tw/article/34439-palantir-us-army
日期: 2024-03-11
----
標題: 智慧餐飲管理的雲仲資訊,推出「你訂」線上點餐系統,為餐飲業者帶來便利。透過導入 NUEIP 人資系統,解決了人事流程繁瑣、耗時的問題,提升經營效率。NUEIP 系統的簡易操作、專業客服,是新創企業高速成長的得力搭檔,助力企業安心營造更開放的管理文化,讓夥伴更信任企業。
連結: https://www.inside.com.tw/article/34276-nueip
日期: 2024-02-26
----
標題: 加密貨幣牛市真的來了嗎?從鏈上數據來看看吧。
連結: https://www.inside.com.tw/article/34438-has-the-cryptocurrency-bull-market-really-arrived-price-vs-value
日期: 2024-03-11
----
標題: 軍方人員所通報的 UAP 目擊事件都歸因於外國飛機、偵察氣球、大氣異常或只是漂浮空中的碎片。
連結: https://www.inside.com.tw/article/34437-post-wwii-most-comprehensive-ufo-investigation-us-department-of-defense-no-evidence-of-aliens
日期: 2024-03-11
----
標題: 隨著數位時代詐騙氾濫,打詐防騙已成全民共識。2024 年首場『數位信任』暨『防詐產業』交流會登場,產官學研攜手打造堅固的數位信任生態系統。交流會以「共創數位信任新世界」為主題,探討區塊鏈技術在防詐騙和建立數位信任方面的應用。
連結: https://www.inside.com.tw/article/34285-JcardVerify
日期: 2024-02-22
----
標題: 首先,我們討論 Meta 全球當機事件,探討臉書、IG、Threads 等平台的異常情況。接著,我們將追蹤比特幣現貨 ETF 的波動,細究其歷史新高又跌落的原因。此外,我們將探討社群平台與用戶快樂程度的關聯,發現 LinkedIn 用戶幸福度最高的趨勢。最後,我們將觸及馬斯克狀告阿特曼事件,探討其與 OpenAI 的關係。
連結: https://www.inside.com.tw/feature/side-chat/34411-side-chat-e220
日期: 2024-03-11
----
標題: 用於 AirPods 的清理工具設計將以筆型外觀呈現,包含軟刷與清潔凝膠;另一項可凹折螢幕的裝置設計,或許有機會應用在可凹折的 iPad。
連結: https://www.inside.com.tw/article/34435-apple-new-patents
日期: 2024-03-11
----
標題: 基於想導入一款使行銷、業務、客戶成功 (CS) 等團隊一體適用的 CRM,精耕智慧長照領域的智齡科技,透過專業雲服務商 Epic Cloud 聚上雲,成功導入 HubSpot 這款具備完整行銷+銷售+客服功能的 CRM 軟體,完整串連商機開發、追蹤、維繫,引領客戶成功等關鍵流程,產製報表從 1 小時驟降為 10 分鐘內,平均增速幅度 500%。
連結: https://www.inside.com.tw/article/34105-EpicCloud
日期: 2024-02-19
----


三. 爬取電腦報/數位時代/硬塞的之今日新聞 :

現在將上面測試整合, 一次取得三家科技新聞網的今日新聞, 由於爬取需要時間, 此處匯入 time 模組, 利用 time.sleep() 等待爬蟲下載資料傳回結果的時間 (約 5 秒以上) : 

>>> import time 
>>> from technews import TechNews   
>>> technews=['ithome', 'business', 'inside']   
>>> for tn in technews:   
  news=TechNews(tn)
  print(f'---- {tn} ----')
  today_news=news.get_today_news()
  time.sleep(5)
  news_contents=today_news['news_contents']
  for key in news_contents:    
      contents=news_contents[key]    # 取得新聞內容 (字典)
      print('標題:', contents['title'])  
      print('連結:', contents['link'])   
      print('日期:', contents['date'])  
      print('----')
  
---- ithome ----
標題: Telegram預計明年就會獲利,考慮公開發行股票
連結: https://www.ithome.com.tw/news/161722
日期: 2024-03-12
----
標題: 馬斯克AI公司將開源Grok聊天機器人
連結: https://www.ithome.com.tw/news/161716
日期: 2024-03-12
----
標題: 微軟公布允許歐盟地區Windows用戶移除Bing、Edge、OneDrive等多項遵循DMA措施
連結: https://www.ithome.com.tw/news/161715
日期: 2024-03-12
----
標題: Google讓瀏覽器、Android手機、iPhone都可執行大型語言模型
連結: https://www.ithome.com.tw/news/161714
日期: 2024-03-12
----
標題: Android地圖應用不再亂指路,Google公開更準確的裝置朝向API
連結: https://www.ithome.com.tw/news/161712
日期: 2024-03-12
----
標題: Safari 17新加入的進階音訊指紋辨識保護已經被破解
連結: https://www.ithome.com.tw/news/161711
日期: 2024-03-12
----
---- business ----
---- inside ----
標題: 甲骨文公司公布了第三財季財報, 受惠於 AI 伺服器的強勁需求,雲端的營收則年增 25%,達到 51 億美元。
連結: https://www.inside.com.tw/article/34446-oracle-q3
日期: 2024-03-12
----
標題: 川普認為TikTok 禁令可能會影響年輕人,且會讓 Facebook 成為一大受益者。川普曾批評 Meta 在美國國會動亂期,撤銷他 FB 和 IG 帳號。
連結: https://www.inside.com.tw/article/34445-trump-thinks-tiktok-ban-could-drive-kids-crazy
日期: 2024-03-12
----
標題: Airbnb 禁裝設室內監視器的新政策難以完全防止不肖人士裝隱藏攝影機,但至少能讓守規的房東不再在於出租的房屋放置任何鏡頭,讓房客住得安心一點。
連結: https://www.inside.com.tw/article/34442-airbnb-bans-indoor-cameras
日期: 2024-03-12
----
標題: 針對傳言,裕隆指出,現階段電馳利暫時無代理銷售業務。
連結: https://www.inside.com.tw/article/34444-geely-in-taiwan
日期: 2024-03-12
----
標題: 隨著社群平台 X 上的討論越來越激烈,也有人質疑「馬斯克嗆聲 OpenAI 不開源,那馬斯克旗下自家 Grok 不也是沒有開源?」然而,就在昨日馬斯克宣布本週將開源 Grok 程式碼,並且將這則貼文置頂於個人頁面上。
連結: https://www.inside.com.tw/article/34443-musk-xai-to-open-source-gork-this-week
日期: 2024-03-12
----
標題: 分析師認為,其中一個關鍵是特斯拉的駕駛輔助硬體是否會成為標配,這個硬體的成本可能在 2,000 到 3,000 美元之間,佔掉不少生產成本。
連結: https://www.inside.com.tw/article/34441-tesla-2027-story-evercore-analysts-model-2-deliveries
日期: 2024-03-12
----

可見除 inside 呼叫 get_today_news() 未傳回資料外, ithome 與 inside 都已有今日新聞.

沒有留言 :