如何使用硒从网站上抓取一些链接

时间:2019-01-20 17:28:34

标签: python selenium selenium-webdriver web-scraping

我一直在尝试使用以下脚本从网页中解析以20012019.csv结尾的链接,但事实是我总是遇到timeout exception错误。我想到我以正确的方式做事。

但是,任何关于我要去哪里的见解都会受到高度赞赏。

到目前为止我的尝试:

from selenium import webdriver

url = 'https://promo.betfair.com/betfairsp/prices'

def get_info(driver,link):
    driver.get(link)
    for item in driver.find_elements_by_css_selector("a[href$='20012019.csv']"):
        print(item.get_attribute("href"))

if __name__ == '__main__':
    driver = webdriver.Chrome()
    try:
        get_info(driver,url)
    finally:
        driver.quit()

2 个答案:

答案 0 :(得分:2)

您的代码很好(尝试并成功了),得到超时的原因是因为根据此answer的默认超时为60s,并且页面很大。

在提出get请求之前将其添加到您的代码中(超时之前要等待180秒):

driver.set_page_load_timeout(180)

答案 1 :(得分:0)

你很近。您必须针对所有元素的可见性诱使 WebDriverWait ,并且需要更改以下行:

this

收件人:

class MyClass {
  instanceMethod() {
    console.log('first');
    this.constructor.staticMethod();
  }
  static staticMethod(self) {
     // how to call??
     instancefromstatic(this).instanceMethod.call(self);
  }
}

class OtherClass extends MyClass {
  instanceMethod() {
    console.log('second');
  }
}
OtherClass.staticMethod({});

注意:您必须添加以下导入:

for item in driver.find_elements_by_css_selector("a[href$='20012019.csv']"):