http://quote.eastmoney.com/ 提供了股票信息查询服务;编个仅用于学习的小爬虫,随机爬取代码以自己学号后2位结尾的股票信息,输出相关信息,输出样式: 爬取时间:2021年07月xx日 xx:yy:zz 我的学号后两位为:xx, 相应股票信息为:(以04结尾为例)写出具体代码
时间: 2023-06-17 13:02:56 浏览: 140
以下是一个示例爬虫代码,使用 Python 编写,需要安装 requests 和 BeautifulSoup 库:
```python
import requests
from bs4 import BeautifulSoup
import random
import time
# 构造请求头和参数
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.164 Safari/537.36'
}
params = {
'pn': '1',
'fltt': '2',
'invt': '2',
'fid': 'f3',
'fs': 'm:0+t:6,m:0+t:13,m:0+t:80,m:1+t:2,m:1+t:23',
'fields': 'f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15,f16,f17,f18,f19,f20,f21,f23,f24,f25,f26,f27,f28'
}
# 随机生成后两位学号
suffix = str(random.randint(0, 99)).zfill(2)
print('我的学号后两位为:{}'.format(suffix))
# 构造请求URL
url = 'http://quote.eastmoney.com/stocklist.html#sz' + suffix
# 发送请求并解析HTML
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
# 获取股票代码和名称列表
stock_list = []
links = soup.select('div.quotebody > div.quotecontent > ul > li > a')
for link in links:
href = link['href']
if href.startswith('/sh') or href.startswith('/sz'):
stock_code = href[3:9]
stock_name = link.text
stock_list.append((stock_code, stock_name))
# 随机选择一只股票并获取详细信息
if stock_list:
stock_code, stock_name = random.choice(stock_list)
print('爬取时间:{}'.format(time.strftime('%Y年%m月%d日 %H:%M:%S')))
print('相应股票信息为:{} {}'.format(stock_code, stock_name))
detail_url = 'https://gupiao.baidu.com/stock/{}.html'.format(stock_code)
response = requests.get(detail_url, headers=headers, params=params)
soup = BeautifulSoup(response.text, 'html.parser')
div = soup.select_one('div.stock-bets')
if div:
name = div.select_one('a.stock-bets-name').text.strip()
price = div.select_one('strong.stock-bets-price').text.strip()
change = div.select_one('span.stock-bets-change').text.strip()
print('股票名称:{}'.format(name))
print('当前价格:{}'.format(price))
print('涨跌幅:{}'.format(change))
else:
print('没有找到相应的股票详细信息!')
else:
print('没有找到相应的股票!')
```
注意:该代码仅供学习参考,不应用于商业用途。在实际使用时,应该遵守相关法律法规和网站的使用协议。
阅读全文