在前幾天的爬蟲中,我們都是以 Python dict 的結構在儲存爬取結果,隨著爬蟲數量增加,會在越來越多的程式中使用到相同的結構來儲存資料,但同時也容易在不同...
大概兩個禮拜前我們已經有用 requests + BeautifulSoup 兩個套件來把文章爬取下來了,今天會把相關的邏輯都移植到 Scrapy 框架中。先附...
昨天用 scrapy genspider ithome ithome.com 指令建立出來的爬蟲檔案 ithome.py 內容是這樣: import scrap...
安裝 安裝套件 pipenv install scrapy 曾經在安裝的時候遇到 Twisted 一直安裝失敗,無法透過 pip 安裝。如果有遇到的讀...
寫了好幾天的爬蟲,不知道大家有沒有感覺同一支程式中要關注的事情太多。目前我們爬蟲的流程大概是這樣: 發送請求,取得網頁 HTML 原始碼 可能需要額外的重試...
有些網站可能不太希望自己的內容被爬取,例如比價網站爬取各個線上購物的網站後,讓消費者很容易比價,就有可能讓某些網站流失消費者。另外如果太多外部的爬蟲在對伺服器發...
先附上完整原始碼。跟 Day 17 的程式碼相比,只修改了 insert_article() 和 insert_responses() 兩個方法,把目標資料庫換...
抓下來的資料通常還要經過一系列的統計分析再呈現結果給使用者。這種資料一般稱為原始資料,大部分情況下抓回來後會儲存在所謂的 NoSQL 中。這兩天就會跟著大家一起...
在前三天的內容中,我們已經把文章和回應都存到資料庫中了,但如果都是用新增的方式,每次執行時如果抓到同一篇文章都會在資料庫中多出一筆,很容易造成後續分析時的誤差。...
延續昨天的內容,今天會把回應的資料存到資料庫中~ 建立資料表 建立 ithome_response 資料表,並定位相關欄位如下: 這張表比較需要注意的是有...
今天來試著把我們從列表頁開始,一路抓到的文章內容和資訊都存到資料庫中! 突然想到還沒整理過完整流程的原始碼,先來整理一下唄~ import requests f...
寫完蒐集資料的程式後,接著要選擇儲存資料的方式,通常會選擇關聯式資料庫(RDBMS)或非關聯式資料庫(NoSQL) ,應該比較少人會存成本地檔案吧。這個系列會分...
除了原文外,回文常常也是重要的資料來源之一(特別是論壇類型的網站),所以今天來嘗試把回文也抓回來吧! 技術文章有回文的不多,找到 30天30碗平民魯肉飯完食!...
昨天我們介紹了使用 requests 來取得網頁原始碼,可是有些透過 JavaScript 渲染的網頁或是防爬蟲做得很好的 ASP.Net 都會讓我們難以取得原...
通常蒐集的資料範圍不會只有文章標題和內文,還會有作者、發文時間、標籤,甚至瀏覽數、回文等等比較詳細的資訊。今天先來抓取比較簡單的幾個資訊吧。 區塊定位 昨天我們...
今天來試著抓文章的內文吧!這邊就用昨天的文章來作為爬取目標 ,順便偷人氣。 決定選擇器 直接在內文中點選「右鍵 > 檢查」打開開發人員工具,可以直接定位到...
昨天我們只有抓到第一頁的文章標題,今天就來試著讓程式學會「換頁」吧! 換頁方式 當我們在網頁中按下第二頁或下一頁後,可以發現網址變成 https://ithe...
大家還記得昨天的落落長選擇器嗎? html > body > div > div.row > div.col-md-12.clearfi...
大家好,我是長風青雲。今天是第二十七天,我已經分類好我們的影片了~那我們先來規劃一下我們的html,再把我們的影片和文案展示在上面~拿出以前的規劃,當時影片是先...
動機 從簡單的商品到價提醒,到複雜的輿情警示、圖形辨識,「資料來源」都是基礎中的基礎。但網路上的資料龐大而且更新很快,總不可能都靠人工來蒐集資料。這時候就是爬蟲...
專題怎麼分工? 我們是採用垂直分工的方式,就是從DB建立、前端、後端都是同一個人完成,只是分到的功能不同,可能是購物車、會員系統等等。 專題啟動 由於是要建置一...
Node.js-Backend見聞錄(29):進階實作-關於爬蟲-以7–11店家資料為例 前言 Howard之前有在工作室分享爬蟲的議題,並舉出這個有趣的例子。...