我目前正在从事一个网络抓取项目,在从 https://Foundersfund.com/portfolio 抓取数据时遇到了问题。我成功地检索了每个公司页面的所有链接。然而,在测试其中一些链接时,我注意到输出的 HTML 与检查元素工具中显示的不同。因此,我无法检索任何信息。
import requests
from bs4 import BeautifulSoup
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36"
}
response = requests.get("https://foundersfund.com/company/figma/", headers=headers)
soup = BeautifulSoup(response.content, "lxml")
soup
输出返回此:
我本想检索有关 Figma 的信息,但结果却是有关 SpaceX 的信息。有趣的是,当尝试查看其他公司的页面时,例如 https://Foundersfund.com/company/spotify/ 或 https://Foundersfund.com/company/airbnb/,我在 SpaceX 上遇到了同样的问题反而出现。我已经排查这个问题好几天了,怀疑页面本身可能有问题。看起来,当我加载该公司的页面时,它会短暂显示 SpaceX 页面,然后再显示所请求的公司页面。
有人可以解释一下这里可能发生了什么吗?
内容是动态呈现的,因此请尝试对单个公司使用 api:
https://foundersfund.com/wp-json/wp/v2/company?slug=figma
或前 100 名:
https://foundersfund.com/wp-json/wp/v2/company?per_page=100
import requests
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36"
}
response = requests.get('https://foundersfund.com/wp-json/wp/v2/company?slug=figma', headers=headers).json()
response