In [1]:
import re
import requests
import bs4

from bs4 import BeautifulSoup
from collections import namedtuple

In [24]:
home_url = 'http://guba.eastmoney.com/'
url = 'http://guba.eastmoney.com/list,600519_1.html'

def get_URL(url):
    headers = {'user-agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:54.0) Gecko/20100101 Firefox/54.0'}
    response = requests.get(url, headers=headers)
    return response.text

def get_urlSoup(url):
    headers = {'user-agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:54.0) Gecko/20100101 Firefox/54.0'}
    response = requests.get(url, headers=headers)
    soup = BeautifulSoup(response.text, 'lxml')
    return soup

soup = get_urlSoup(url)

In [25]:
summary = soup.find_all('div', attrs={'class':'articleh'})#.find_all('span')

In [142]:
pattern = re.compile('em class')
simple_summary = [x for x in summary if not pattern.search(str(x))]

In [139]:
class brief_item:
    def __init__(self, soup):
        assert isinstance(soup, bs4.element.Tag)
        self.home_url = 'http://guba.eastmoney.com/'
        self.filter_pattern = re.compile('<.+?>')
        
        # 阅读量
        try:
            self.viewer = int(soup.find_all('span', attrs={'class':'l1'})[0].string)
        except:
            self.viewer = 0
            
        # 回复量
        try:
            self.response = int(soup.find_all('span', attrs={'class':'l2'})[0].string)
        except:
            self.viewer = 0
            
        # 标题,链接,分类
        try: 
            foo_l3 = soup.find_all('span', attrs={'class':'l3'})[0]
            self.href = foo_l3.find_all('a')[0]['href']
            self.title = foo_l3.find_all('a')[0]['title']
            self.attr = foo_l3.find_all('em')[0].string
        except:
            self.href = self.title = self.attr = 'none'
            
        # 用户信息
        try:
            self.user = soup.find_all('span', attrs={'class':'l4'})[0].find_all('a')[0].string
            self.user_id = soup.find_all('span', attrs={'class':'l4'})[0].find_all('a')[0]['data-popper']
        except:
            self.user = self.user_id = 'none'
            
        self.parse_detail()
            
    def get_urlSoup(self, url):
        headers = {'user-agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:54.0) Gecko/20100101 Firefox/54.0'}
        response = requests.get(url, headers=headers)
        soup = BeautifulSoup(response.text, 'lxml')
        return soup
    
    def parse_detail(self):
        detail_soup = self.get_urlSoup(self.home_url+self.href)
        bar = detail_soup.find_all('div', attrs={'class':'stockcodec'})[0]
        self.detail = self.filter_pattern.sub('', str(bar)).strip()
#         return self.detail
    @property
    def show(self):
        print('title : %s' % (self.title))
        print('attr : %s' % (self.attr))
        print('href : %s' % (self.href))
        print('user : %s' % (self.user))
        print('user_id : %s' % (self.user_id))
        print('viewer : %s' % (self.viewer))
        print('response : %s' % (self.response))
        print('detail : %s' % (self.detail))

In [140]:
a = brief_item(summary[0])

In [141]:
a.show


title : 银行板块逆势拉升上证50涨超1% 创业板跌超2%
attr : 讨论
href : news,cjpl,729457206.html
user : 财经评论
user_id : 9313013693864916
viewer : 11853
response : 165
detail : 来源:东方财富网   沪深两市出现大幅分化走势,酿酒板块跌幅居前,贵州茅台跌幅一度超5%,次新股受解禁压力影响,多股跌幅超7%。【推荐阅读&gt;&gt;&gt;年内这些公司迎巨额解禁(名单)】银行板块逆势上扬,吴江银行、招商银行涨逾4%。截止发稿,上证50涨1.08%,创业板跌2%。  今天券商晨会上,分析师表示,个股分化仍大概率持续,龙头效应体现的是机构话语权的提升,注意回调风险。  华林证券:  展望后市,首先我们认为个股分化仍大概率持续,龙头效应体现的是机构话语权的提升,趋势投机模式在2017 年已经成为机构的主流,在年终业绩考核压力下,市场很有可能延续风格;其次,把握龙头并不意味着要去追涨,行情总是源于分歧止于高潮,愈加速的品种愈要警惕回调风险;最后,在指数出现明显企稳信号前,戒急用忍控制仓位,等待调整出来的介入机会。方向上,把握新时代的大逻辑——如“先进制造、品牌消费和美丽中国”。  华泰证券:   市场整体表现低迷,沪指、深成指与创业板均表现疲软,市场分化进一步加剧。人工智能、食品饮料、5G、保险表现良好。从有关市场数据分析结果来看,今年属于典型的结构性牛市,我们预计年末行情依然呈现结构性行情,并从三七转向二八,继续看好人工智能、消费、保险、银行、医药、钢铁、煤碳、有色等行业绩优公司。  东北证券:  在经历了上周持续单边上行以及成交额的放大之后,存量资金格局对上行步伐产生了明显限制,本周成交额持续下降;此外,本周市场情绪面也有明显降温,融资买入额及占A股成交额的比重再次从高点回落;次新股指数近三个交易日跌幅超过8%。在配置结构上,金融板块的配置性价比仍然居前,消费和周期的均衡配置价值上升。  方正证券:  人民币短期企稳运行,有利减轻A股压力,资金阶压力减轻,有利短线大盘稳定,但在机构调仓依旧,大盘盘中大幅震荡在所难免。昨量能继续萎缩,高价次新股杀跌动力较足,难有赚钱效应的市场,人气短期难聚,短线多空仍围绕3400点反复争夺。值得关注的是,资金从高价次新股流出,子行业龙头的中低价二线蓝筹股有望获得资金青睐。操作上,调持仓、不追高,逢低关注中高端制造、医药、机电、电气设备及业绩成长的二线蓝筹,逢高减持高价次新股。  机构论市&gt;&gt;&gt;  安信策略:为何十年期国债利率一路攀升 A股无恙?  东北证券:上证综指有望在2018年上探4000点  中金:四大理由看好A股市场中长期走势 关注5G产业链  银河证券:短期市场宽幅震荡难免 中期强势格局不变  华泰:布局滞涨蓝筹股和未来业绩确定性强的成长股(来源:东方财富网 2017-11-17 14:13) [点击查看原文]