目前在練習爬蟲抓取新聞標題,並匯出CSV
問題點是此新聞頁面有5頁,我迴圈有抓到5頁的標題與網址,
但是匯出成csv檔時,卻只匯出第五頁的標題?
#爬取聯合新聞網頁面
#問題:動態頁面,雖然有取得網址,但只能得到第五頁的標題
#問題二:code40中的titleLinke為目的網址,需再加上link3的網址才是完整的網頁,但不知道如何合併link3+titleLink
import requests
import bs4
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
list = ["title","view","link"]
ws.append(list)
header = {
"user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36"
}
link1 = "https://udn.com/api/more?page="
link2= "&id=&channelId=1&cate_id=99&type=breaknews&totalRecNo=15638"
link3 = "https://udn.com/"
for page in range(1,5):
url = link1+str(page)+link2
print(url)
r = requests.get(url, headers=header)
items = r.json()
for item in items["lists"]:
headline = []
#headline.append(item["date"])
headline.append(item["title"])
headline.append(item["view"])
headline.append(item["titleLink"])
ws.append(headline)
wb.save("123.xlsx")
for page in range(1,5):
url = link1+str(page)+link2
print(url)
r = requests.get(url, headers=header)
你這邊只剩下最後一頁了,
縮排再調整一下應該就可以了.
for page in range(1,5):
url = link1+str(page)+link2
print(url)
這段應該改成長度為5的url_list,
不然只會儲存最後一筆url
至於你的問題2,
我沒有很理解。
因為你第1~5取到的頁面全放入同一支檔案了。
當然只會出現最後一個了。