教你用python实现34行代码爬取东方财富网信息,爬虫之路,永无止境!!

教你用python实现34行代码爬取东方财富网信息,爬虫之路,永无止境!!

代码展示:


开发环境
windows10
python3.6
开发工具
pycharm
weddriver

selenium、lxml、openpyxl、time

安装webdriver

首先要安装webdriver插件,本文以谷歌浏览器为例,点开谷歌浏览器,点击右上角三个点,然后点击帮助,然后点击关于Google Chrome,查看浏览器的版本,然后点击网址http://npm.taobao.org/mirrors/chromedriver寻找自己浏览器对应的版本进行下载,下载之后将chromedriver.exe的文件最好放在你python解释器的同级目录下

进行标签定位


数据都在tbody标签里,tr代表一行的数据,有20个tr标签

构造一下网页翻页

dirver.find_element_by_xpath(r’//*[@id=“main-table_paginate”]/a[2]’).click()

开发思路:

1.自动化获取源码
2.xpath获取标签信息
3.将信息添加到表格
4.自动化翻页
5.循环上述操作

源码展示

import time
from openpyxl import Workbook
from lxml import etree
from selenium import webdriver


def main():
    url = r'http://quote.eastmoney.com/center/gridlist.html#hs_a_board'
    wb = Workbook()
    sheet = wb.active
    sheet.append(['序号','代码','名称','最新价','涨跌幅','涨跌额','成交量(手)','成交额','振幅','最高','最低','今开','昨收','量比','换手率','市盈率(动态)','市净率'])
    dirver = webdriver.Chrome(executable_path=r'D:\python\chromedriver.exe')
    dirver.get(url)
    count = 1
    while True:
        response = dirver.page_source
        html_str = etree.HTML(response)
        for i in range(1,21):
            odd = html_str.xpath(r'//*[@id="table_wrapper-table"]/tbody/tr[{}]//text()'.format(i))
            del odd[3:8]
            sheet.append(odd)
        print('******正在下载{}页数据******'.format(count))
        time.sleep(5)
        dirver.find_element_by_xpath(r'//*[@id="main-table_paginate"]/a[2]').click()
        count += 1
        time.sleep(5)
        if count == 4:
            break
    wb.save('东方财富网信息采集.xlsx')
    print('****全部数据下载完成****')


if __name__ == '__main__':
    main()

大家还可以继续开发

比如沪深A股的网址http://quote.eastmoney.com/center/gridlist.html#hs_a_board
上证A股的网址http://quote.eastmoney.com/center/gridlist.html#sh_a_board
区别是后面不一样
只要将url地址变一下就可以爬取其他股票信息
自动化还是很好用的,缺点有点慢,爬取所有股票信息只是时间问题了



代码仅供学习!

祝大家学习python顺利!

来源:主打Python

物联沃分享整理
物联沃-IOTWORD物联网 » 教你用python实现34行代码爬取东方财富网信息,爬虫之路,永无止境!!

发表评论