Python Selenium WebDriver抓取-单页花费45秒

时间:2018-07-15 19:54:38

标签: python selenium selenium-webdriver web-scraping selenium-chromedriver

我正在使用Selenium,Chrome从房地产列表网站中提取房屋信息。

每个页面都有10个元素,其中包含有关每个房屋的信息(页面上列出了10个房屋)。请求和Urllib模块不能用于此目的。

一切正常,我从页面中获取了我需要的所有数据。但是,我的For Loop总共需要45秒才能处理10个房屋。 有什么办法可以加快速度吗?我的代码草率吗?

我是python的新手,应该使用Threading还是Java?这些是我找到的解决方案,但是我可以使用一些确认。我仅将Selenium用于测试目的。

我很感谢每一个建议。预先感谢!

代码:

while pagenum < 3:
    driver.get(website.format(pagenum))
    houses = driver.find_elements_by_class_name("search-result-content")

    ## len(houses) is 10

    for item in houses:

        st, pc1 = item.find_element_by_css_selector('h3.search-result-title').text.strip().split("\n")
        ## pc1= '1234 AB Testcity'

        pc = pc1[:7] 
        ## pc = '1234 AB'
        ci = pc1[8:] 
        ## ci = 'Testcity'

        pr = item.find_element_by_css_selector('div.search-result-info-price').text
        wo = item.find_element_by_class_name('search-result-kenmerken').find_elements_by_tag_name('span')[0].text
        ka = item.find_element_by_class_name('search-result-info').find_element_by_xpath('//*[contains(text(),"rooms")]').text
        mk = item.find_element_by_class_name('search-result-agent-name').text
        ul = item.find_element_by_css_selector('a').get_attribute('href')

        try:
            po = item.find_element_by_class_name('search-result-details').find_elements_by_tag_name('span')[1].text
        except Exception as e:
            po = "-"

        writer.writerow([st, pc, ci, pr, wo, po, ka, mk, ul])

0 个答案:

没有答案