通过正则表达式,获取股票数据(re.findall的应用)
比如,需要抓取链接“http://stockpage.10jqka.com.cn/000955/”下图3个周期的涨幅数据

这里我们先使用request请求获得数据,然后通过正则re匹配数据
分析网页结构数据,需要的数据存放在名称为“even hot_cont”的class下

所以正则的写法为:
1、先获取class=even hot_cont下的所有数据
“tr_content = re.findall(‘<tr class="even hot_cont">(.*?)</tr‘, response, re.S)[0]”
2、再获取td标签头的数据
“td_content = re.findall(‘<td.*?>(.*?)</td‘, tr_content, re.S)”
3、最后获取需要的数据
print(td_content[1]),打印出来的结果“39.89%”
如此,我们抓取到了5日涨幅的数据,其他数据只需要修改“[]”的数字即可
注意:(.*?)是匹配任意字符的意思
全部代码
import requests
import re
cookies = {
‘spversion‘: ‘20130314‘,
‘searchGuide‘: ‘sg‘,
‘Hm_lvt_78c58f01938e4d85eaf619eae71b4ed1‘: ‘1580136391,1580289267,1580373821,1581036534‘,
‘Hm_lvt_22a3c65fd214b0d5fd3a923be29458c7‘: ‘1581036563,1581037991,1581040818,1581042432‘,
‘Hm_lpvt_78c58f01938e4d85eaf619eae71b4ed1‘: ‘1581042471‘,
‘Hm_lpvt_22a3c65fd214b0d5fd3a923be29458c7‘: ‘1581042471‘,
‘historystock‘: ‘002341%7C*%7C002179%7C*%7C002458%7C*%7C002223‘,
‘v‘: ‘AqV2ZISrF5jZjHPExrLsDULrtGrI4llAo5Y9yKeKYVzrvsuWbzJpRDPmTPc0‘,
}
headers = {
‘Accept-Encoding‘: ‘gzip, deflate‘,
‘Accept-Language‘: ‘zh-CN,zh;q=0.9‘,
‘Upgrade-Insecure-Requests‘: ‘1‘,
‘User-Agent‘: ‘Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36‘,
‘Accept‘: ‘text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8‘,
‘Cache-Control‘: ‘max-age=0‘,
‘Connection‘: ‘keep-alive‘,
}
response = requests.get(‘http://stockpage.10jqka.com.cn/000955/‘, headers=headers, cookies=cookies).text
#正则取出数据
tr_content = re.findall(‘<tr class="even hot_cont">(.*?)</tr‘, response, re.S)[0]
print(tr_content)
td_content = re.findall(‘<td.*?>(.*?)</td‘, tr_content, re.S)
print(td_content)
print(td_content[1])执行结果

相关推荐
wangzhaotongalex 2020-10-20
wyq 2020-11-11
TLROJE 2020-10-26
风雨断肠人 2020-10-13
duanqingfeng 2020-09-29
rechanel 2020-11-16
luofuIT成长记录 2020-09-22
phphub 2020-09-10
taomengxing 2020-09-07
MaggieRose 2020-08-19
flyingssky 2020-08-18
山水沐光 2020-08-18
jyj00 2020-08-15
AHuqihua 2020-08-09
山水沐光 2020-08-03