今天我們還來聊聊 Web Scraper 翻頁的技巧。" />

国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

15158846557 在線咨詢 在線咨詢
15158846557 在線咨詢
所在位置: 首頁 > 營銷資訊 > 網(wǎng)站運(yùn)營 > Web Scraper 翻頁——利用 Link 選擇器翻頁 | 簡易數(shù)據(jù)分析 14

Web Scraper 翻頁——利用 Link 選擇器翻頁 | 簡易數(shù)據(jù)分析 14

時(shí)間:2023-09-06 06:30:01 | 來源:網(wǎng)站運(yùn)營

時(shí)間:2023-09-06 06:30:01 來源:網(wǎng)站運(yùn)營

Web Scraper 翻頁——利用 Link 選擇器翻頁 | 簡易數(shù)據(jù)分析 14:這是簡易數(shù)據(jù)分析系列的第 14 篇文章。本文首發(fā)于博客園:Web Scraper 翻頁——利用 Link 選擇器翻頁




今天我們還來聊聊 Web Scraper 翻頁的技巧。




這次的更新是受一位讀者啟發(fā)的,他當(dāng)時(shí)想用 Web scraper 爬取一個(gè)分頁器分頁的網(wǎng)頁,卻發(fā)現(xiàn)我之前介紹的分頁器翻頁方法不管用。我研究了一下才發(fā)現(xiàn)我漏講了一種很常見的翻頁場景。

在 web scraper 翻頁——分頁器翻頁的文章里,我們講了如何利用 Element Click 選擇器模擬鼠標(biāo)點(diǎn)擊分頁器進(jìn)行翻頁,但是把同樣的方法放在豆瓣 TOP 250 上,翻頁到第二頁時(shí)抓取窗口就會(huì)自動(dòng)退出,一條數(shù)據(jù)都抓不到。




其實(shí)主要原因是我沒有講清楚這種方法的適用邊界。




通過 Element Click 點(diǎn)擊分頁器翻頁,只適用于網(wǎng)頁沒有刷新的情況,我在分頁器那篇文章里舉了蔡徐坤微博評(píng)論的例子,翻頁時(shí)網(wǎng)頁是沒有刷新的:

仔細(xì)看下圖,鏈接發(fā)生了變化,但是刷新按鈕并沒有變化,說明網(wǎng)頁并沒有刷新,只是內(nèi)容變了
而在 豆瓣 TOP 250 的網(wǎng)頁里,每次翻頁都會(huì)重新加載網(wǎng)頁:

仔細(xì)看下圖,鏈接發(fā)生變化的同時(shí)網(wǎng)頁刷新了,有很明顯的 loading 轉(zhuǎn)圈動(dòng)畫
其實(shí)這個(gè)原理從技術(shù)規(guī)范上很好解釋:當(dāng)一個(gè) URL 鏈接是 # 字符后數(shù)據(jù)變化時(shí),網(wǎng)頁不會(huì)刷新;當(dāng)鏈接其他部分變化時(shí),網(wǎng)頁會(huì)刷新。當(dāng)然這個(gè)只是隨口提一下,感興趣的同學(xué)可以去這個(gè)鏈接研究一下,不感興趣可以直接跳過。

1.創(chuàng)建 Sitemap

本篇文章就來講解一下,如何利用 Web Scraper 抓取翻頁時(shí)會(huì)刷新網(wǎng)頁的分頁器網(wǎng)站。

這次的網(wǎng)頁我們選用最開始練手 Web Scraper 的網(wǎng)站——豆瓣電影 TOP250,換個(gè)姿勢練習(xí) Web Scraper 翻頁技巧。

像這種類型的網(wǎng)站,我們要借助 Link 選擇器來輔助我們翻頁。Link 標(biāo)簽我們?cè)谏弦还?jié)介紹過了,我們可以利用這個(gè)標(biāo)簽跳轉(zhuǎn)網(wǎng)頁,抓取另一個(gè)網(wǎng)頁的數(shù)據(jù)。這里我們利用 Link 標(biāo)簽跳轉(zhuǎn)到分頁網(wǎng)站的下一頁。

首先我們用 Link 選擇器選擇下一頁按鈕,具體的配置可以見下圖:

這里有一個(gè)比較特殊的地方:Parent Selectors ——父選擇器。

之前我們都沒有碰過這個(gè)選擇框的內(nèi)容,next_page 這次要有兩個(gè)父節(jié)點(diǎn)——_root 和 next_page,鍵盤按 shift 再鼠標(biāo)點(diǎn)選就可以多選了,先按我說的做,后面我會(huì)解釋這樣做的理由。

保存 next_page 選擇器后,在它的同級(jí)下再創(chuàng)建 container 節(jié)點(diǎn),用來抓取電影數(shù)據(jù):

這里要注意:翻頁選擇器節(jié)點(diǎn) next_page 和數(shù)據(jù)選擇器節(jié)點(diǎn) container 是同一級(jí),兩個(gè)節(jié)點(diǎn)的父節(jié)點(diǎn)都是兩個(gè):_root 和 next_page:

因?yàn)橹攸c(diǎn)是 web scraper 翻頁技巧,抓取的數(shù)據(jù)上我只簡單的抓取標(biāo)題和排名:

然后我們點(diǎn)擊 Selector graph 查看我們編寫的爬蟲結(jié)構(gòu):

可以很清晰的看到這個(gè)爬蟲的結(jié)構(gòu),可以無限的嵌套下去:

點(diǎn)擊 Scrape,爬取一下試試,你會(huì)發(fā)現(xiàn)所有的數(shù)據(jù)都爬取下來了:

2.分析原理

按照上面的流程下來,你可能還會(huì)比較困擾,數(shù)據(jù)是抓下來了,但是為什么這樣操作就可以呢,為什么 next_page 和 container 要同級(jí),為什么他們要同時(shí)選擇兩個(gè)父節(jié)點(diǎn):_root 和 next_page?




產(chǎn)生困擾的原因是因?yàn)槲覀兪堑箶⒌闹v法,從結(jié)果倒推步驟;下面我們從正向的思維分步講解。




首先我們要知道,我們抓取的數(shù)據(jù)是一個(gè)樹狀結(jié)構(gòu),_root 表示根節(jié)點(diǎn),就是我們的抓取的第一個(gè)網(wǎng)頁,我們?cè)谶@個(gè)網(wǎng)頁要選擇什么東西呢?

1.一個(gè)是下一頁的節(jié)點(diǎn),在這個(gè)例子里就是用 Link 選擇器選擇的 next_page

2.一個(gè)是數(shù)據(jù)節(jié)點(diǎn),在這個(gè)例子里就是用 Element 選擇器選擇的 container




因?yàn)?next_page 節(jié)點(diǎn)是會(huì)跳轉(zhuǎn)的,會(huì)跳到第二頁。第二頁除了數(shù)據(jù)不一樣,結(jié)構(gòu)和第一頁還是一樣的,為了持續(xù)跳轉(zhuǎn),我們還要選擇下一頁,為了抓取數(shù)據(jù),還得選擇數(shù)據(jù)節(jié)點(diǎn):

如果我們把箭頭反轉(zhuǎn)一下,就會(huì)發(fā)現(xiàn)真相就在眼前,next_page 的父節(jié)點(diǎn),不正好就是 _root 和 next_page 嗎?container 的父節(jié)點(diǎn),也是 _root 和 next_page!




到這里基本就真相大白了,不理解的同學(xué)可以再多看幾遍。像 next_page 這種我調(diào)用我自己的形式,在編程里有個(gè)術(shù)語——遞歸,在計(jì)算機(jī)領(lǐng)域里也算一種比較抽象的概念,感興趣的同學(xué)可以自行搜索了解一下。

3.sitemap 分享

下面是這次實(shí)戰(zhàn)的 Sitemap,同學(xué)們可以導(dǎo)入到自己的 web scraper 中進(jìn)行研究:

{"_id":"douban_movie_top_250","startUrl":["https://movie.douban.com/top250?start=0&filter="],"selectors":[{"id":"next_page","type":"SelectorLink","parentSelectors":["_root","next_page"],"selector":".next a","multiple":true,"delay":0},{"id":"container","type":"SelectorElement","parentSelectors":["_root","next_page"],"selector":".grid_view li","multiple":true,"delay":0}]}


4.推薦閱讀

簡易數(shù)據(jù)分析 13 | Web Scraper 高級(jí)用法——抓取二級(jí)頁面

簡易數(shù)據(jù)分析 12 | Web Scraper 翻頁——抓取分頁器翻頁的網(wǎng)頁

簡易數(shù)據(jù)分析 10 | Web Scraper 翻頁——抓取「滾動(dòng)加載」類型網(wǎng)頁

簡易數(shù)據(jù)分析 08 | Web Scraper 翻頁——點(diǎn)擊「更多按鈕」翻頁

簡易數(shù)據(jù)分析 05 | Web Scraper 翻頁——控制鏈接批量抓取數(shù)據(jù)



關(guān)鍵詞:簡易,數(shù)據(jù),分析,利用,選擇

74
73
25
news

版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點(diǎn)擊下載Chrome瀏覽器
關(guān)閉