簡體   English   中英

Beautiful Soup 只返回 javaScript 代碼?

[英]Beautiful Soup returns only javaScript Code?

我想從以下網站抓取數據。 https://dell.secure.force.com/FAP/?c=de&l=de&pt=findareseller我試圖從網絡選項卡中獲取數據,但它什么也沒返回。 然后我嘗試了 BeautifulSoup 來獲取一些數據,但它只返回帶有空 tbody 標簽的 Javascript。 但是在檢查元素中,它在表格中顯示數據。

import requests
from bs4 import BeautifulSoup
url = 'https://dell.secure.force.com/FAP'
headers = {
   'Connection': 'keep-alive'
   }
data = {
'pt': "findareseller"
   }
page = requests.get(url, params= data)
soup = BeautifulSoup(page.text, 'html.parser')
soup.find_all('table') # returns only javascript code.

有人可以幫忙嗎,我該如何抓取數據?

soup.find_all('table')返回一個包含所有表格元素的列表。

因此,要找到您的特定元素,您應該嘗試找到一些使其與所有其他表不同的不同屬性(如 id 或類)。

要訪問元素屬性,請使用t[0].attrs來獲取它們的列表,例如: t[0]["width"]來訪問它們。

另外:通過使用soup.select('table')代替,您可以使用 css 選擇器作為字符串輸入,因此您不必處理 beautifulsoups 函數。

謝謝你們。 我想出答案。 我使用網絡搜索來獲取任何搜索請求。 我發現搜索 URL,以確認 URL 是否正確,我雙擊它並返回完全相同的頁面。 所以我復制 bash 代碼並將其作為導入“RAW TEXT”粘貼到 POSTMAN 中。 我發現它實際上使用了發布請求。 使用發布請求后,我能夠獲取所需的數據。 下面是帶有 POST 的請求。

response = requests.request("POST", url, headers=headers, data=payload)

然后我用 BeautifulSoup 作為湯。

st = soup.find('input')['value'] # returns data I needed

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM