我正在構建一個完全自動化的求職應用程式,有趣的是,自動化部分相當簡單,但報廢并沒有那么多。
簡而言之,requests beautifulsoup對我正在廢棄的大多數域都有效,但是在可行頁面上嘗試相同的程序時沒有任何效果:
import requests
from bs4 import BeautifulSoup as bs
session = requests.Session()
url = 'https://apply.workable.com/breederdao-1/j/602097ACC9/'
req = session.get(url)
title = soup.find('h1', {'data-ui': 'job-title'})
print(title)
>>> None
details = soup.find('span', {'data-ui': 'job-location'})
print(details)
>>> None
這兩個元素都在 下body,但是當我嘗試獲取頁面的標題時,我確實得到了我的期望:
title_0 = soup.find('title')
print(title_0)
>>> <title>Data Analyst (Fully Remote) - BreederDAO</title>
我也嘗試使用await HTMLSEssion/ AsyncHTMLSession,但只要元素在內部body,每個find()仍然回傳None。
任何人都可以教育我嗎?我目前的假設是該網站具有某種反報廢機制,但我什至不知道從哪里開始尋找。不過,這個元素看起來確實很額外:
<html...
<head>...</head>
<body>
.
.
.
<noscript>
<iframe height="0" width="0" src="https://www.googletagmanager.com/ns.html?id=GTM-WKS7WTT&gtm_auth=SGnzIn3pcB7S4fevFXOKPQ&gtm_preview=env-2&gtm_cookies_win=x" style="display: none; visibility: hidden;">
#document
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>ns</title>
</head>
<body>
" "
</body>
</html>
</iframe>
</noscript>
.
.
.
</body>
</html>
uj5u.com熱心網友回復:
您看到的資料是通過 javascript 從外部 URL 加載的。要加載它,您可以使用requests模塊。例如:
import json
import requests
# 602097ACC9 is from your URL
url = "https://apply.workable.com/api/v2/accounts/breederdao-1/jobs/602097ACC9"
data = requests.get(url).json()
# uncomment to print all data:
# print(json.dumps(data, indent=4))
print(data["title"])
print(", ".join(data["location"].values()))
印刷:
Data Analyst (Fully Remote)
Philippines, PH, Makati, Metro Manila
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/456916.html
標籤:html python-3.x 网页抓取 美丽的汤 蟒蛇请求
上一篇:來自遠程來源的Exiftool
