大家好,我是爬蟲初學者。在練習爬104人力銀行網頁內容時,遇到”定位標籤找不到內容”的問題,麻煩幫忙求解。
想要抓取的網頁url: (https://www.104.com.tw/job/6vrlf?jobsource=jolist_c_relevance)
想要抓取的網頁內容: “條件要求”裡的”工作技能”的內容
使用的程式語言: Python 3
使用套件: requests, BeautifulSoup
附上程式碼: (https://repl.it/@ellieytc/ProperFrigidZettabyte)
下圖為anaconda jupyter notebook的環境截圖:
我遇到的問題是:
print(soup)後,發現回傳的html文件內容裡,沒有”條件要求”這一大區塊的文字內容,但是回到”開發人員工具”看,有找到”條件要求”區塊裡的標籤和文字內容。
”開發人員工具”畫面如下:
於是我試著定位標籤,寫出語法:
'''jobs = soup.select('div.job-requirement > p > span > a > u')'''
但回傳的卻是空集合。
試著google和解決問題的思考過程:
目前呈現一個鬼打牆的狀態,只能求求版上大神幫忙了。
第一次發問,如果發問的鋪陳有需要改進的地方,也請多多指教。
謝謝
我多餘的話就不多說
看之前的回復
總之
你會看到他有個連結
https://www.104.com.tw/job/ajax/content/6vrlf
帶上必要的 header
headers = {
"Referer": "https://www.104.com.tw/job/6vrlf",
}
就能順利爬到資料
code
import requests
import json
url = 'https://www.104.com.tw/job/ajax/content/6vrlf'
headers = {
"Referer": "https://www.104.com.tw/job/6vrlf",
}
response = requests.get(url = url, headers = headers)
json.loads(response.text)
result
{'data': {'corpImageRight': {'corpImageRight': {'imageUrl': '', 'link': ''}},
...
'jobDetail': {'jobDescription': 'TOP500 Key clients 數據整合、行銷策略與會員CRM經營管理\r\n透過adGeek開放式溝通團隊合作的企業文化,可充分應用所長提升客戶成效,同時獲得更深的行銷know how,並往行銷funnel上層移動,與客戶討論市場、產品定位與會員經營,切定行銷方案,成為更全方位的數位策略全才\r\n適合正向積極、有高度求知慾、熱衷擬定行銷策略、擅長做會員分級行銷,看到轉換成效提升會興奮,並渴望把事情做好的你!',
...
爬不到的原因是因為他是 js render 出來的
你可以禁用 browser 的 js 就知道