爬取股票网站,可以看到打开谷歌浏览器,抓取页面内容
点击下一页进行多页面抓取。
代码抓取了3页的内容,用于学习使用。
需要安装selenium库
执行效果如下
首先导入selenium , 导入 time是用来让任务休眠使用
from selenium import webdriverimport time
定义一个函数,来提取我们想要的内容
使用xpath来获取网页内的股票关键内容
整理之后并在一行打印出来,
没有过多的对内容来做排版
def sj(driver): xpath = '//*/tbody/tr[{}]/td[{}]' # xpaths = [xpath.format(i) for i in range(1,20)]
for j in range(1, 21): for i in range(1, 20):
ss = driver.find_element_by_xpath(xpath.format(j, i)) print(ss.text, end="\t\t")
print()
定义一个表头,偷懒的方法。。。
然后获取内容并逐行打印,
内容打印完毕后,抓取下一页的位置,单击
延时3秒,等待页面内容刷新,不然会出现意外
tt = '序号\t\t代码\t\t名称\t\t相关链接\t\t最新价\t\t涨跌幅\t\t涨跌额\t\t成交量(手)\t\t成交额\t\t振幅\t\t最高\t\t最低\t\t今开\t\t昨收\t\t量比\t\t换手率\t\t市盈率(动态)\t\t市净率'print(tt)for i in range(3): sj(driver) driver.find_element_by_class_name('next').click() time.sleep(3) # 暂停3秒 等待浏览器缓存
from selenium import webdriverimport time
""" 使用selenium框架爬取数据"""def sj(driver): xpath = '//*/tbody/tr[{}]/td[{}]' # xpaths = [xpath.format(i) for i in range(1,20)]
for j in range(1, 21): for i in range(1, 20):
ss = driver.find_element_by_xpath(xpath.format(j, i)) print(ss.text, end="\t\t")
print()
# 初始化浏览器driver = webdriver.Chrome()# 设置窗口大小# driver.set_window_size(1920, 1080)
# 最大化窗口# driver.maximize_window()# 请求网址driver.get("http://quote.eastmoney.com/center/gridlist.html#sh_a_board") # 访问股票网站
# xpathtt = '序号\t\t代码\t\t名称\t\t相关链接\t\t最新价\t\t涨跌幅\t\t涨跌额\t\t成交量(手)\t\t成交额\t\t振幅\t\t最高\t\t最低\t\t今开\t\t昨收\t\t量比\t\t换手率\t\t市盈率(动态)\t\t市净率'print(tt)for i in range(3): sj(driver) driver.find_element_by_class_name('next').click() time.sleep(3) # 暂停3秒 等待浏览器缓存
driver.quit()