从网站

时间:2018-09-06 13:51:30

标签: javascript python web-scraping beautifulsoup

我正在使用BeautifulSoup从网站上抓取角色信息。尝试获取角色的获胜率时,BeautifulSoup找不到它。

当我检查文本时,其列出如下。我在网站的源代码中可以找到的所有内容,而BeautifulSoup所找到的都是“ ranking-stats-placeholder”。

这是我当前正在使用的代码。

import bs4
from urllib.request import urlopen as uReq
from bs4 import BeautifulSoup as soup

my_url = "https://u.gg/lol/champions/darius/build/?role=top"

#opening up connection, grabbing the page
uClient = uReq(my_url)
page_html = uClient.read()
uClient.close()

#html parsing
page_soup = soup(page_html, "html.parser")

#champion name
champ_name = page_soup.findAll("span", {"class":"champion-name"})[0].text

#champion win rate
champ_wr = page.soup.findAll("div", {"class":"win-rate okay-tier"})

我相信获胜率文字是通过javascript添加的,但是我不知道如何获取文字。我当前拥有的代码为champ_wr返回“ None”

2 个答案:

答案 0 :(得分:0)

尽管从技术上讲该文本可能在javascript本身中,但我的第一个猜测是JS通过ajax请求将其提取。让您的程序模拟这一点,您可能会不需要抓取就将所需的所有数据直接交给您!

这将需要一些侦探工作。建议您打开网络流量记录器(例如Firefox中的“ Web Developer Toolbar”),然后访问该站点。将注意力集中在任何/所有XmlHTTPRequest上。

祝你好运!

答案 1 :(得分:0)

不确定您与BeautifulSoup有多紧密联系,但是我可以通过以下方法使硒做有用的事情:

p3=[-2,-1,-1]