从bing刮掉足球预测

时间:2016-04-10 13:49:02

标签: javascript python html

当您使用bing搜索并搜索 fussball bundesliga时, bing将显示当前周和下周的最后一周。比赛通常在周末进行。如果实际周的比赛都没有参加,那么你将获得每支球队获胜,失利或平局的概率。

我已经可以从页面中获取不需要展开的结果/预测,因为它们在加载的html中。要看到更多,我需要以某种方式扩展该视图(可以通过图片中的圆圈看到)。在人工控制的浏览器中,这很容易。site on load

问题是单击该箭头会发出执行javascript的onclick()事件。所以我认为使用有javascript支持的东西可能有所帮助。直到现在我无法得到丢失的游戏,因为我无法以编程方式单击该箭头并加载页面。这是我的代码:

from bs4 import BeautifulSoup
from bs4.element import NavigableString
import requests
import sys  
from lxml import html
import spynner
from time import sleep

import dryscrape
from bs4 import BeautifulSoup

if __name__ == "__main__":
    url = "https://www.bing.com/search?q=fussball+bundesliga"

    sess = dryscrape.Session()
    sess.visit(url)
    response = sess.body()

    dryscrype_soup = BeautifulSoup(response,"lxml")
    #test = dryscrype_soup.findAll("div",{"id":"tab_3_dynamic"})
    dryscrape_actual_week =   dryscrype_soup.findAll("div",{"id":"sp-full-29"})
    dryscrape_text = [i for i in dryscrype_soup.recursiveChildGenerator() if type(i) == NavigableString]
    dryscrape_all_text = dryscrape_actual_week[0].findAll(text=True)


    browser = spynner.Browser(debug_level=spynner.DEBUG)
    browser.show(True,True)
    browser.load(url)
    browser.runjs("sj_evt.fire('ExpandClick', '29', '');",True)

    #browser.wk_click(".//*[@id='sp-expandTop-more-29']", wait_load=True)
    #browser.wk_click_ajax(selector=".//*[@id='sp-expandTop-more-29']")
    browser.wait_load()

    markup = browser._get_html()
    spynner_soup = BeautifulSoup(markup,"lxml")
    spynner_actual_week = spynner_soup.findAll("div",{"id":"sp-full-29"})
    spynner_all_text = spynner_actual_week[0].findAll(text=True)

不要打扰进口,我已经尝试了几件事。我试过microsofts azure api,但这只提供链接,而不是这些预测。当您查看已解析的html或变量spynner_all_textdryscrape_all_text时,您会注意到它们仅包含非扩展网页的结果。希望有人可以帮助我。

0 个答案:

没有答案