我无法从该网站抓取域名?邮递员 returns json() 但是当我调用 response.json() 时通过异常请求

I am unable to scrape domain name from this website? Postman returns json() but requests through exception When I call response.json()

我想从以下网站抓取域名和社交链接(linkedin、twitter)电子邮件。 https://cloud28plus.com/en/partner/resecurity--inc- 我首先尝试从网络请求中获取数据。它不起作用。 然后我尝试了请求模块。当我尝试这个时它抛出异常:

response = requests.get(url)
data = response.json() # not working.

然后我尝试了 BeautifulSoup。 当我打印 soup.body 时,它是 returns 数据。但它不是结构化的,因此当我调用 soup.find_all('a') 时,汤对象 returns 空列表 []。 我的密码是

import requests
from bs4 import BeautifulSoup
url = 'https://cloud28plus.com/en/partner/resecurity--inc-'
response = requests.get(url)
# data = response.json() # not working
page = response.text
soup = BeautifulSoup(page, 'html.parser')
# Returns Empty list
soup.find_all('a')

soup.find('a', class_ = 'followUs__IconTwitter-sc-1gwf1fm-2 edzSJr fa fa-twitter-square')  # returns nothing
soup.find_all('div', class_ = 'col'). # empty list

谁能告诉我我做错了什么?

您在页面上看到的数据存储在嵌入式 Json 中。要解析它,您可以使用下一个示例:

import json
import requests
from bs4 import BeautifulSoup

url = "https://cloud28plus.com/en/partner/resecurity--inc-"

soup = BeautifulSoup(requests.get(url).content, "html.parser")
data = json.loads(soup.select_one("#__NEXT_DATA__").contents[0])

# uncomment this to see all data:
# print(json.dumps(data, indent=4))

print(data["props"]["initialProps"]["pageProps"]["element"]["twitter"])

打印:

https://twitter.com/RESecurity