有什么方法可以提高Selenium的页面请求速度?

时间:2020-06-26 05:29:07

标签: python selenium web-scraping stock

我正尝试使用Selenium和BeautifulSoup从HKEx.com.hk抓取股票数据,并处理数百种股票。 我发现这太笨拙了,因为我的代码指示WebDriver重新运行,弹出并关闭我打算进行Web剪贴的每只股票。 是否有任何更快或更平滑的方法呢? 这是我的代码:

from selenium import webdriver
from bs4 import BeautifulSoup
import pandas as pd

columns = ['col_name', 'col_last', 'col_issued_shares', 'col_summary']
df = pd.DataFrame(index=None, columns = columns)


stock_lists=pd.read_excel('python\WORK\comparable_sorting\stock_lists.xlsx')['stock_lists'].tolist()

for i in stock_lists:

    driver = webdriver.Chrome()
    r = driver.get("https://www.hkex.com.hk/Market-Data/Securities-Prices/Equities/Equities-Quote?sym={}&sc_lang=en".format(i))
    content = driver.page_source
    soup = BeautifulSoup(content,'html.parser')

    col_name = soup.find('p', class_='col_name').get_text()
    col_last = soup.find('span', class_='col_last').get_text()
    col_issued_shares = soup.find('span', class_='col_issued_shares').get_text()
    col_summary = soup.find('div', class_='company_txt col_summary').get_text()

    lists = [[col_name, col_last, col_issued_shares, col_summary]]
    df_temp = pd.DataFrame(lists, index=None, columns = columns)
    df = df.append(df_temp, ignore_index=True)
    driver.close()

print(df.head())
print(df.tail())


df.to_excel('python\WORK\comparable_sorting\comparables.xlsx',sheet_name='Sheet1')

此外,我是python的新手。对我的编码整洁有何建议?非常感谢。

p.s。 stock_lists是数字列表,因为香港股票代码为数字格式。 (例如5、2888、700 ...等)

0 个答案:

没有答案