作者ec2242 (當場輾斃)
看板Python
標題[問題] 爬取JS render網站
時間Tue Sep 1 22:14:21 2020
最近在練習爬蟲 想爬104的頁面
但無奈遇到頁面是由JS render的(拿愛奇藝當範例)
目前code如下:
import requests
from bs4 import BeautifulSoup
url = '
https://www.104.com.tw/company/1a2x6bkonm'
headers = {
'User-Agent':
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,
like Gecko) Chrome/84.0.4147.135 Safari/537.36',
'Referer':
'
https://www.104.com.tw/company/1a2x6bkonm'
}
res = requests.get(url, headers=headers)
soup = BeautifulSoup(res.text, 'lxml')
print(soup)
無奈輸出後body只有
<div id="globalbar">
<div id="bar_m104">
<div id="global_bk">
剩下全沒了
想請問要怎麼爬取這種類似網頁呢? 謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.164.3.112 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1598969663.A.D10.html
→ TakiDog: 打開F12 切換到Network 按下XHR 你要的資料在那 09/01 22:42
→ chickengod: from selenium import webdriver 09/01 23:13
推 bdbddbdb: 用F12看你要的資料是怎麼出來的,真的不行就用selenium 09/02 22:09
推 alansyue: 找 api 看看 09/05 11:45
推 hakosaki: 有一隻 api 但好像要帶token之類的 09/08 11:05
推 aidansky0989: 建議你先寫網頁程式,連網頁都不會寫運維不用反爬, 09/14 13:58
→ aidansky0989: 你就不知道怎麼搞 09/14 13:58
→ aidansky0989: 前端對後端接口發ajax請求,返回的是json數據,json 09/14 13:59
→ aidansky0989: .loads(request.body.decode()) 09/14 13:59
推 ToastBen: requests-html可以render,若遇到ddos protection還是得 09/21 01:11
→ ToastBen: 靠selenium.webdriver 09/21 01:11