BeautifulSoup - 访问动态加载的页面上的内容

时间:2016-04-10 16:31:54

标签: python html beautifulsoup

我正在编写一个贯穿本网站的程序:http://www.whatuni.com,具体为:http://www.whatuni.com/degree-courses/search?subject=software-engineering&pageno=
第1至6页。
它搜索每一页并查找Russell Group的每所大学,并进行软件工程,然后浏览所有模块。它旨在拒绝任何带有硬件组件的模块,并将其余模块添加到列表中。到目前为止,它正在搜索模块页面但存在一个问题:默认情况下不显示网站模块中的主题,按下按钮后由JavaScript加载。这是一个显示情况的页面: http://www.whatuni.com/degrees/artificial-intelligence-and-software-engineering-beng-hons/university-of-edinburgh/cd/54977454/5508/
我想知道如何访问这些模块,以便我可以遍历它们,这是该程序中最后一个复杂的步骤。我是否必须模拟用户输入或者因为它不通过浏览器解析而无法工作?或者我必须查看脚本?我正在使用python 3.4,以及这个程序的美味汤。

from general import *

class ModuleCrawler:

base_url = ""
page_url = ""
bad_words = ("computer systems" or "computer architecture" or "hardware" or "electronics"
             or "information technology")

def __init__(self, base_url, page_url):
    self.base_url = base_url
    self.page_url = page_url
    self.crawl_topics(self.get_description(get_html(page_url)))

def crawl_topics(self, description):
    if self.bad_words in description.lower():
        print("crap uni")
    else:
        #print(description.lower())

    append_to_file("PossibleUnis.txt", self.page_url)

def get_description(self, html_string):
    return ', '.join(str(s) for s in (get_by_id(html_string, "#fullDesc")))

那是模块爬虫,漂亮的汤代码在另一个文件中。我让它从页面中获取描述,但有时会遗漏这些单词,而我的文本文件中有许多具有这些主题的模块。

0 个答案:

没有答案