我在从url中抓取信息时遇到问题,但是由于网站处理事情的方式,BeautifulSoup只从根页面收集数据,也称为http://csgo-stats.com
是否有一个重定向正在进行,这是绊倒了BS?我可以在html中看到BS输出,它试图加载我的数据,但BS捕获数据太快:
<main class="site-content" id="content">
<div class="loading-spinner" data-request="epsilon-" id="load">
Loading
</div>
以下是我正在使用的代码,以防需要:
from urllib.request import urlopen
from bs4 import BeautifulSoup
url = "http://csgo-stats.com/Epsilon-/"
soup = BeautifulSoup(urlopen(url))
print(soup.prettify())
虽然大多数http内容库(beautiful soup、请求等)都可以为您获取页面源,但页面在浏览器中呈现后的外观并非如此。这与当前HTML代码的构建方式有关,这是因为大部分页面呈现都是在页面上的所有JavaScript完成工作之后进行的。这正是你看不到“最终”内容的原因
现在,如果您希望在播放完所有JavaScript音乐后以浏览器呈现的方式收集内容,那么您需要另一种(python)库,该库就是Selenium
关于硒的更多信息:http://www.seleniumhq.org/
只是想提醒你,硒是一种非常大的动物,有很多毛茸茸的末端,但学习它是值得的(不仅仅是为了刮擦)
问题是
urllib.request
不处理Javascript。尝试访问禁用Javascript的页面。有关启用javascript的刮片的详细信息:Web-scraping JavaScript page with Python如果提供了API(Getting CS:GO player stats),最好避免刮取
相关问题 更多 >
编程相关推荐