基于Selenium写的Python爬虫

2019-08-03 11:09:56 浏览数 (1)

爬取股票网站,可以看到打开谷歌浏览器,抓取页面内容

点击下一页进行多页面抓取。

代码抓取了3页的内容,用于学习使用。

需要安装selenium库

执行效果如下

首先导入selenium , 导入 time是用来让任务休眠使用

代码语言:javascript复制
from selenium import webdriverimport time

定义一个函数,来提取我们想要的内容

使用xpath来获取网页内的股票关键内容

整理之后并在一行打印出来,

没有过多的对内容来做排版

代码语言:javascript复制
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="tt")
        print()

定义一个表头,偷懒的方法。。。

然后获取内容并逐行打印,

内容打印完毕后,抓取下一页的位置,单击

延时3秒,等待页面内容刷新,不然会出现意外

代码语言:javascript复制
tt = '序号tt代码tt名称tt相关链接tt最新价tt涨跌幅tt涨跌额tt成交量(手)tt成交额tt振幅tt最高tt最低tt今开tt昨收tt量比tt换手率tt市盈率(动态)tt市净率'print(tt)for i in range(3):    sj(driver)    driver.find_element_by_class_name('next').click()    time.sleep(3)  # 暂停3秒 等待浏览器缓存
代码语言:javascript复制
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="tt")
        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 = '序号tt代码tt名称tt相关链接tt最新价tt涨跌幅tt涨跌额tt成交量(手)tt成交额tt振幅tt最高tt最低tt今开tt昨收tt量比tt换手率tt市盈率(动态)tt市净率'print(tt)for i in range(3):    sj(driver)    driver.find_element_by_class_name('next').click()    time.sleep(3)  # 暂停3秒 等待浏览器缓存
driver.quit()

0 人点赞