作者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://webptt.com/cn.aspx?n=bbs/Python/M.1598969663.A.D10.html
1F:→ TakiDog: 打开F12 切换到Network 按下XHR 你要的资料在那 09/01 22:42
2F:→ chickengod: from selenium import webdriver 09/01 23:13
3F:推 bdbddbdb: 用F12看你要的资料是怎麽出来的,真的不行就用selenium 09/02 22:09
4F:推 alansyue: 找 api 看看 09/05 11:45
5F:推 hakosaki: 有一只 api 但好像要带token之类的 09/08 11:05
6F:推 aidansky0989: 建议你先写网页程式,连网页都不会写运维不用反爬, 09/14 13:58
7F:→ aidansky0989: 你就不知道怎麽搞 09/14 13:58
8F:→ aidansky0989: 前端对後端接口发ajax请求,返回的是json数据,json 09/14 13:59
9F:→ aidansky0989: .loads(request.body.decode()) 09/14 13:59
10F:推 ToastBen: requests-html可以render,若遇到ddos protection还是得 09/21 01:11
11F:→ ToastBen: 靠selenium.webdriver 09/21 01:11