我正在尝试解析来自站点的数据,但是出现了一个空数组,这是某种保护还是我不明白。附代码
import requests
from fake_useragent import UserAgent
from bs4 import BeautifulSoup
import json
url = 'https://tofunft.com/ru/collection/iguverse-nft/activities?category=listing'
ua = UserAgent()
headers = {'User-Agent': ua.chrome}
responce = requests.get(url, headers=headers)
soup = BeautifulSoup(responce.text, "html.parser")
find_data = soup.find_all('div', __class="chakra-stack")
print(find_data)
网站上有保护,但是和你的这些NFT一样,没用。您可以在 Tor 中打开页面以降低加载速度并查看那里发生了什么。
是的,它是检查 cookie 和 JS 的 cloudflare 保护。但对于任何一位老妇来说,都有一个漏洞,特别是因为这种保护已经存在多年,因此也有解决方案。
Cloudscraper重量只有 98 kB,不会加载像 Selenium 那样的资源,Selenium 会连同必要的数据一起加载其他一堆垃圾,非常易于使用。本质上是 requests 和 requests_toolbelt 的附加组件。
输出:
这里的保护很薄弱,连headers都不要,你可以尽情的强奸这个网站。
这意味着您从json收集所需的数据,将所有内容放入循环中,在循环中递增
page
并将所有这些混乱收集到 DataFrame 中。你可以在我的另一个答案中看到如何做到这一点:我无法解析动态站点,更准确地说,当我转到带有 json 的页面时,它给出了 405 错误
建议
根据您的代码,您不仅有一个空数组。看看它给你的是什么
responce.status_code
(反应是用S写的)。上帝,是
403
的,当然,你有一个空数组。