爬取东方财富股票信息网

没有使用复杂的方法,最简单的了下面是图文

创建python的一个文件,需要导入的库

 

 

 

连接数据库配置,配置headers

下一步就 百度搜索 东方财富,进入随便找个股票,以上证个股为例

看下这个页面的逻辑,有分页,分也时 url是不变的,很明显就是ajax了,我用的最low的方法就是遍历 url

http://nufm.dfcfw.com/EM_Finance2014NumericApplication/JS.aspx?cb=jQuery112408117789619119797_1540286711822&type=CT&token=4f1862fc3b5e77c150a2b985b12db0fd&sty=FCOIATC&js=(%7Bdata%3A%5B(x)%5D%2CrecordsFiltered%3A(tot)%7D)&cmd=C.2&st=(ChangePercent)&sr=-1&p=1&ps=20&_=1540286711823

第一页20条数据 第二页到最后都是20条

逻辑就在  这个url里面,  &p=1 &ps=20     最后一个&_=1540286711823 这个貌似可有可无  看效果

p=1 改成5   ps=20 改成5  第五页出现五条数据

逻辑清晰了  name就可以写代码了

之所以用最low的方法  就是这个最不费劲  ,爬取json数据最简单,url已给 进去的直接包装拿走就行了

跳过ajax  直接遍历url  每页一条数据,看了下总共1442条,format就行了

然后就是json数据的格式  正则把不需要的给去掉

写入数据库的时候 字段有点多 不要写错了 不然就各种报错

这么low的代码 到这里也就写完了,各位大神们手下留情,我也是个小白 入行不久    应该对小白们稍微有些许帮助。我知道自己有许多不足,我会继续努力!

 

 

### 使用 Python 爬虫抓取东方财富网的股票评论数据 为了实现这一目标,可以采用 `requests` 库来发送 HTTP 请求以及 `BeautifulSoup` 或者 `lxml` 来解析 HTML 文档。对于更复杂的交互式页面,则可能需要用到 Selenium 这样的工具模拟浏览器行为。 #### 准备工作 确保已经安装了必要的库: ```bash pip install requests beautifulsoup4 lxml pymysql selenium ``` #### 获取评论列表页URL 通常情况下,东方财富网上的每只股票都有专门的讨论区链接模式较为固定,形如: - http://guba.eastmoney.com/list,000001_1.html (其中 000001 是股票代码) 可以通过修改 URL 中的参数部分访问不同分页的内容[^2]。 #### 编写爬虫脚本 下面是一个简单的例子用于说明如何构建基本框架去提取特定股票下的所有帖子标题及其发布时间: ```python import requests from bs4 import BeautifulSoup import re def get_page_content(url): headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)', } response = requests.get(url=url, headers=headers) if response.status_code == 200: return response.text else: raise Exception(f"Failed to load page {url}") def parse_html(html_str): soup = BeautifulSoup(html_str, features="html.parser") posts_info = [] article_list = soup.find_all('div', class_='articleh normal_post') for item in article_list: title_tag = item.select_one('.title a') or {} pub_date_tag = item.select_one('.author span.lzred') or {} post_data = { "title": title_tag.get_text(strip=True), "pub_date": pub_date_tag.get_text(strip=True).replace('[', '').replace(']', ''), } posts_info.append(post_data) return posts_info if __name__ == '__main__': base_url = "http://guba.eastmoney.com/list,%s_%d.html" stock_id = input("请输入要查询的股票ID:") total_pages = int(input("请输入想要获取的最大页数:")) all_posts = [] try: for i in range(1, total_pages + 1): url = base_url % (stock_id.zfill(6), i) html = get_page_content(url) parsed_result = parse_html(html) all_posts.extend(parsed_result) print(all_posts[:5]) # 打印前五个条目作为示例输出 except Exception as e: print(e.args[0]) ``` 此段代码会遍历指定数量的页面,并收集每个帖子的信息。需要注意的是,在实际应用中应当加入更多的异常处理逻辑以应对网络波动等问题;同时也应该遵循网站的服务条款,合理设置请求间隔时间以免给服务器造成过大压力[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值