此文基于前几天的内容所讲,如果中间遇到看不懂的,请参阅之前三篇文章: Python环境配置 、 Requests和Post基础 、 Xpath基础 。
目的:获取股票的基本信息和详情页的部分信息。
一、导入库
打开Jupyter Notebook,新建一个Python 3文件,先导入需要的库文件。
二、数据平台
上市公司,顾名思义,就是有可公开交易股票的公司,这些信息肯定是在某个网站摆着的。
我们选取这个网站上的数据,点击大数据—>上市大数据。
点击深沪股票—>按市场分类。
默认为沪市A股,有1435个股票,每页显示200个。
总共8页,但你会发现网址竟然是一样的,也就意味着这不是真正的网址。
三、获取某个股票信息的某个内容
先返回到第1页(也可以不返回),右键检查,右边点击Network,左边点击第2页,右边在XHR—>Name里找到文件点击,可以看到Request URL(网址)和Method(方法)。
你可以点击左侧不同的市场(上图红色)和页码(上图紫色)来验证看看Request URL的不同;黄色部分是访问序号,每次刷新(F5)都是不一样的,可以忽略。
有了Request URL和Method,我们就可以写出以上代码,实例化后,就可以进行网页源代码解析了。
我们把刚才的网址在浏览器打开,在其中一个股票代码上右键检查,把鼠标移到右侧打开的元素Elements列表里淡蓝底显示的内容上,右键选择Copy点击Copy XPath。
点击打开浏览器插件Xpath Helper,在左侧方框内粘贴,右边就显示了刚才点选的股票代码,这样能够快速的得到路径表达式。
如果你看了前面的文章没忘的话,text()函数是提取元数据的;上一篇文章提过一次,加上[0]输出为字符串,不加是列表,因为此列表元素是从零开始,且只有这一个元素,这次把不同的结果显示出来,一定要注意。
四、获取当前页面的200个股票信息
我们往上回两级(回一级td是每个股票的不同内容),每一个tr对就代表着一个完整的股票信息,总共有200个,上图中获取了其中一个tr的路径表达式。
通过xpath函数获取200个股票的tr标签,后面的一长串是16进制的内存地址。
为了把每个tr对里的内容提取出来,我们用for循环,把相对应的内容(键值)放到字典的键名中。
for循环第一次:tr(for循环一般用i当自变量,这里用tr为了和标签同)相当于 //*[@id="tblBody1"]/tbody/tr[1] ,到股票代码等号右边的时候相当于 //*[@id="tblBody1"]/tbody/tr[1]/td[5]//text()。tr后面数字从1到200变化,td后面的数字从2到11,分别对应股票代码、股票名称、公司全称、所属省市、上市日期、成立日期、企业法人、注册资金(万元)、员工人数、主营产品。
五、获取某个股票详情页的内容
点击股票代码或名称进入详情页。
对比一看,网址最后部分就是该股票的代码。
还是和上面一样操作,点击某个需要的信息,右键检查,拷贝Xpath,忘了往上翻看第三部分,写出如上代码(依然在for循环里,仅循环了前三个)。
结尾
至此,此次目的完成,之后是如何导出的问题,因为不能每次都频繁的爬取吧,服务器会嫌弃你的,明天见!
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.