iT邦幫忙

2022 iThome 鐵人賽

DAY 19
1
AI & Data

Python網路爬蟲系列 第 19

Day19 –網路爬蟲PTT - 3(爬下一頁)

  • 分享至 

  • xImage
  •  

今天要做的是繼續往下爬一頁。
先定義好昨天寫的程式碼,這樣之後只需要呼叫定義就可以執行。
(記得要將url變數移到下面,定義內的程式碼也要記得縮排!)
https://ithelp.ithome.com.tw/upload/images/20221004/20152406pY7dvfjICd.png
接著我們需要找到上一頁這個按鈕的元素,一樣按下f12
點擊我圈起來的地方之後點選你想查看的那個按鈕。
https://ithelp.ithome.com.tw/upload/images/20221004/20152406hBXkK8tar4.png
這裡我們想看上一頁這個按鈕的元素,所以就點選上一頁的按鈕。
https://ithelp.ithome.com.tw/upload/images/20221004/20152406rIqkiR5b3T.png

prepage = data.find('a', class_ = 'btn wide', text = '‹ 上頁')
    newUrl = 'https://www.ptt.cc' + prepage['href']
    return newUrl

最後設下迴圈,如果你想要爬更多頁只要把迴圈次數更改就好。

for i in range(4):
    url = getData(url) 

input:

import requests
import bs4 

def getData(url):
    ptt = requests.get(url, cookies={'over18':'1'})
    data = bs4.BeautifulSoup(ptt.text, 'html.parser')
    titles = data.find_all('div', class_ = 'title')
    for title in titles:
        if title.a != None:
            print(title.a.string)

    prepage = data.find('a', class_ = 'btn wide', text = '‹ 上頁')
    newUrl = 'https://www.ptt.cc' + prepage['href']
    return newUrl
url = 'https://www.ptt.cc/bbs/Gossiping/index.html'
for i in range(4):
    url = getData(url) 

output:
https://ithelp.ithome.com.tw/upload/images/20221004/20152406Fxpyw1dZdp.png

參考書籍:
洪錦魁 -- Python網路爬蟲:大數據擷取、清洗、儲存與分析:王者歸來 2019
林俊瑋, 林修博 --- Python:網路爬蟲與資料分析入門實戰 2018


上一篇
Day18 –網路爬蟲PTT - 2(資料清洗)
下一篇
Day20 –網路爬蟲PTT - 4(儲存成.json)
系列文
Python網路爬蟲30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言