项目一:股票信息定向爬虫
标签(空格分隔): 爬虫
—BIT Python网络爬虫与信息提取 实例三
1.getStockList()函数分析
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
1. soup.find_all()
函数返回类型为<class 'bs4.element.ResultSet'>
,为标签集合的形式,所以循环语句中的i
的类型即为<class 'bs4.element.Tag'>
2. i.attrs
语句以字典形式返回标签i
的属性,i.attrs['href']
返回的是键为href
的对应的值,本实例中返回的是保存有股票代码的网址,下面就可以进行正则匹配来得到股票代码
3. 注意语句re.findall(r"[s][hz]\d{6}",href)
以列表形式返回所有的匹配项,本实例中虽然该列表中只有一项,但是仍要写成re.findall(r"[s][hz]\d{6}",href)[0]
形式来提取出第一项,进而将其添加入新的列表,该列表存放的是所有的股票代码
2. getStockInfo()函数分析
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