用python 来炒股二 BeautifulSoup爬虫信息新闻文章
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了用python 来炒股二 BeautifulSoup爬虫信息新闻文章,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1684字,纯文字阅读大概需要3分钟。
内容图文
![用python 来炒股二 BeautifulSoup爬虫信息新闻文章](/upload/InfoBanner/zyjiaocheng/638/3ce7a92fc4c947bdaaed5805cf1fb354.jpg)
使用python 炒股,最先要用的是数据收集,下文用爬取新闻实例来简述
数据获取
1. 打开指定得财经资讯网站,例如中证时报:http://stock.stcn.com/dapan/index.shtml
2. 建议用chrome浏览器来分析网站结构,指定需要提取的文章列表
分析可得路径:
<head> , <body>, <div>'' ,<div>''' .... <li> <a>
此处路径较深,又涉及多重定位,若用find 只查一次,而用find_all 可查询多次,使用find_all 更合理。
多层嵌套div,要想提取下层的内容,有多种方法,这里例举常用的:
可以用最后一个 name='ul',attrs={'class':"news_list2"}, 也可以使用 name='div',attrs={'class':"content clearfix"}
假设第一层的 tag = 搜索结果
再来定位第二层的文章 sub_tag find in tag
如果网页的数据中,都是文章,简单提取的方式如:
soup.find_all("a") #在所有数据中找节点a
但结果往往不如意,因为常常会遇到其他广告或者推荐文章列表也显示进来。需要用if 或者for 条件来筛选,或者用正则方式匹配
代码示例
1.新建 .py 文件,导入BS
from bs4 import BeautifulSoup import requests import time import json url = 'http://stock.stcn.com/dapan/index.shtml' wb_data = requests.post(url) soup = BeautifulSoup(wb_data.content,'lxml')
2. for 循环定位文章节点
这种写法得优势:
- 避免用if 时多增加临时变量,节省内存开辟空间。即使这个<DIV> 是多个单中嵌套
- 用双重for 来查询定位时采用子类方式,迭代生成也节约了空间
- 特别说明,此时的路径虽然唯一,但是用 find_all 而不同find 是因为考虑到find 查询返回的结果不利于后续的操作,给后续嵌套的for 循环带来方便
for tag in soup.find_all(name='ul',attrs={'class':"news_list2"}): for sub in tag.find_all("a"): print(sub)
3.显示结果:
于是对数据进行筛选,如果只保留文章标题
for tag in soup.find_all(name='ul',attrs={'class':"news_list2"}): for sub in tag.find_all("a"): print(sub.string) #因为sub仍然是个子对象tag,使用string 来提取字符串信息
内容总结
以上是互联网集市为您收集整理的用python 来炒股二 BeautifulSoup爬虫信息新闻文章全部内容,希望文章能够帮你解决用python 来炒股二 BeautifulSoup爬虫信息新闻文章所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。