修改了嵩天老师代码部分内容:
①将网址中的https 换成 http,不修改的话程序不能爬取;
②最好在getStockInfo()函数中,当count >= 50的时候就return, 因为截止到现在一共有4717( 你可以在main()函数中getStockList() 后边添加一句print(len(slist)) 得到股票总数 )个股票...运行完程序需要很长时间,我跑了两个多小时才50%,这个数好像也是扩大100倍的。。。
代码:
import requests
from bs4 import BeautifulSoup
import traceback
import re
def getHTMLText(url, code="utf-8"):
try:
r = requests.get(url)
r.raise_for_status()
r.encoding = code
return r.text
except:
return ""
def getStockList(lst, stockURL):
html = getHTMLText(stockURL, "GB2312")
soup = BeautifulSoup(html, 'html.parser')
a = soup.find_all('a')
for i in a:
try:
href = i.attrs['href']
lst.append(re.findall(r"[s][hz]\d{6}", href)[0])
except:
continue
def getStockInfo(lst, stockURL, fpath):
count = 0
for stock in lst:
url = stockURL + stock + ".html"
html = getHTMLText(url)
try:
if html=="":
continue
infoDict = {}
soup = BeautifulSoup(html, 'html.parser')
stockInfo = soup.find('div',attrs={'class':'stock-bets'})
name = stockInfo.find_all(attrs={'class':'bets-name'})[0]
infoDict.update({'股票名称': name.text.split()[0]})
keyList = stockInfo.find_all('dt')
valueList = stockInfo.find_all('dd')
for i in range(len(keyList)):
key = keyList[i].text
val = valueList[i].text
infoDict[key] = val
with open(fpath, 'a', encoding='utf-8') as f:
f.write(str(infoDict) + '\n')
count = count + 1
print("\r当前进度: {:.2f}%".format(count*100/len(lst)),end="")
except:
count = count + 1
print("\r当前进度: {:.2f}%".format(count*100/len(lst)),end="")
continue
def main():
stock_list_url = 'http://quote.eastmoney.com/stocklist.html'
stock_info_url = 'http://gupiao.baidu.com/stock/'
output_file = 'F:/BaiduStockInfo.txt'
slist=[]
getStockList(slist, stock_list_url)
getStockInfo(slist, stock_info_url, output_file)
main()
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1148
183.71 KB下载数642
644.84 KB下载数2756
相关文章
发现更多好内容- Java泛型中的 extends 操作符对性能有哪些影响?(Java泛型extends的性能影响如何)
- 如何掌握 Java 图形化界面设计原则?(java图形化界面设计原则)
- 在 Java 中如何获取栈顶元素?(java怎么获取栈顶元素)
- Java 中如何获取字符数组中的字符?(java字符数组怎么获取字符)
- 在 Java 中,JLabel 的文本是否能够实现旋转?(java中jlabel的文本能否实现旋转)
- Java编程中 abstract 类和方法的详细解析与应用指南(java编程abstract类和方法详解)
- 如何判断 Java 数组中是否存在重复元素?(Java怎么判断数组是否有重复元素)
- Java 中魔法值究竟是什么含义?(java魔法值是什么意思)
- 在 Java 开发中,Javase 究竟扮演着怎样的角色?(Javase在Java开发中扮演什么角色)
- 在 Java 中如何实现 base64 到 blob 的转换?(Java中base64转blob怎么实现)
猜你喜欢
AI推送时光机Python股票数据定向爬虫是怎么样的
后端开发2023-06-17
python爬虫爬取股票的北上资金持仓数据
后端开发2024-04-02
python爬虫爬取股票的k线图
后端开发2024-04-02
python 简单的股票基金爬虫
后端开发2022-06-02
利用Python 爬取股票实时数据详情
后端开发2024-04-02
使用python怎么爬取最新的股票数据
后端开发2023-06-06
python和爬取东方财富热门股票数据
后端开发2023-06-02
Python爬取股票交易数据并可视化展示
后端开发2024-04-02
多线程+代理池爬取天天基金网、股票数据(
后端开发2023-01-31
Python怎么爬取股票交易数据并可视化展示
后端开发2023-06-21
用python做股票数据分析
后端开发2023-10-18
python爬虫之你好,李焕英电影票房数据分析
后端开发2024-04-02
Python爬虫后如何获取重定向url
后端开发2023-06-14
爬虫逆向实战(二十三)--某准网数据
后端开发2023-08-30
Python爬虫与数据分析之爬虫技能:u
后端开发2023-01-31
Python爬虫:导出爬取的数据
后端开发2023-01-31
python爬虫爬取赶集网数据
后端开发2023-01-31
Python爬虫Xpath定位数据的两种方法
后端开发2024-04-02
咦!没有更多了?去看看其它编程学习网 内容吧