题目:股票数据的定向爬虫。
目标:获取美股所有股票的代码和美股个股的链接。
材料:需要网站东方财富网。
东方财富网: 股票代码查询一览表 _ 股票行情 _ 东方财富网 步骤1 :访问东方财富网查看股票信息。 步骤 2 :使用开发者模式打开东方财富网(F12),分析东方财富网股票列表信息。 步骤 3 :根据分析的网页内容编写爬虫 步骤4 :将爬取结果存储到文件代码:
import requests
from bs4 import BeautifulSoup
import re
import csv
def getHTMLText(url):
try:
r = requests.get(url)
r.raise_for_status()
r.encoding = r.apparent_encoding #如果直接知道编码形式的话直接用,apparent_encoding是一个比较耗时的操作。
return r.text
except:
return ""
def getStockInfo(stock_list_url, save_path):
html = getHTMLText(stock_list_url)
#print(html)
soup = BeautifulSoup(html, 'html.parser')
div = soup.find('div', attrs={'class': 'quotebody'})
# print(div.prettify())
li_lists = div.find_all('li')
try:
ll = []
for item in li_lists:
a = item.find('a')
name = a.string
href = a.attrs['href']
ll.append([name, href])
print(name, href)
f = open(save_path, 'w', encoding='utf-8', newline='n')
writer = csv.writer(f)
writer.writerow(['name', 'href'])
f.close()
with open(save_path, "a", encoding='utf-8', newline='n') as f:
writer = csv.writer(f)
writer.writerows(ll)
except:
return 'error'
def main():
stock_list_url = 'http://quote.eastmoney.com/usstocklist.html'
save_path = '/home/program/program/a.csv'
getStockInfo(stock_list_url, save_path)
main()
打印结果:
保存表格:



