繁体   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