美文网首页
有来医生

有来医生

作者: Lonelyroots | 来源:发表于2022-06-15 22:49 被阅读0次
"""

精神心理科:
    "https://youlai.cn/dise/pk_9_0_1.html"

"""
from requests_html import HTMLSession
import csv
import re

class Spider:
    def __init__(self):
        self.session = HTMLSession()
        self.level1_url = "https://youlai.cn/dise/pk_9_0_1.html"  # 一级疾病
        self.HomeUrl = "https://youlai.cn"     # 主页

    def parseLevel1(self):
        """解析一级中所有的疾病分类"""
        response = self.session.get(url=self.level1_url)
        level2_urlTitle = response.html.xpath('//dl[@class="textList"]//a/text()')
        level2_urlList = response.html.xpath('//dl[@class="textList"]//a/@href')
        for index in range(0,len(level2_urlList)):
            self.parseArticleHome(level2_urlList[index],level2_urlTitle[index])
            # break

    def parseArticleHome(self,url,title):
        """解析二级中相关文章页数"""
        articleHomeUrl = (self.HomeUrl + url).replace('dise/','dise/articlelist/').replace('.html','_%s.html')
        page = 1
        isPage = True
        TrailerPage = 1
        while isPage:
            if page > TrailerPage:      # 如果超过最大页数
                break
            response = self.session.get(url = articleHomeUrl % page)
            if TrailerPage == 1:
                TrailerPage = int(response.html.xpath('//div[@id="pages"]//li[last()-1]/a/text()')[0])      # 获取最后一页数目
                # print(TrailerPage)
            articleList = self.getArticleList(response)
            self.parseArticle(articleList)
            page += 1
            # break

    def parseArticle(self,articleList):
        """解析文章中的详细信息"""
        for url in articleList:
            response = self.session.get(url=self.HomeUrl + url)
            title = response.html.xpath('//h3[@class="v_title"]/text()')[0]     # 标题
            createTime = response.html.xpath('//span[@class="fl_left time"]/text()')[0]     # 创建时间
            readingQuantity = response.html.xpath('//span[@class="fl_left num"]/text()')[0].replace('阅读:','')       # 阅读量
            doctorName = response.html.xpath('//dl[contains(@class,"doc_pic_box")]/dd//li/strong/text()')       # 医生名
            hospitalName = response.html.xpath('//dl[contains(@class,"doc_pic_box")]/dd//p[1]/text()')      # 医院名
            officeName = response.html.xpath('//dl[contains(@class,"doc_pic_box")]/dd//p[2]/text()')        # 办公室名
            content = re.findall('<div class="text">(.*?)</div>',response.text,re.S)[0].strip()     # 文本内容
            # (a:附加写方式打开,不可读;a+:附加读写方式打开)
            with open('内科文章.csv','a+',encoding='utf-8',newline='') as fp:
                writer = csv.writer(fp)
                writer.writerow((title,createTime,readingQuantity,doctorName,hospitalName,officeName,content))
            print("******",title,createTime,readingQuantity,doctorName,hospitalName,officeName,"******")
            print(content)
            # break

    def getArticleList(self,response):
        """获取相关文章的URL 列表链接"""
        return response.html.xpath('//ul[@class="article_left article_l_list bd_none"]//h3/a/@href')

    def run(self):
        self.parseLevel1()

if __name__ == '__main__':
    spider = Spider()
    headers = ('文章标题','发表时间','阅读量','医生名','院名','科室','正文')
    with open('内科文章.csv','w',encoding='utf-8',newline='') as fp:
        writer = csv.writer(fp)
        writer.writerow(headers)
    spider.run()

"""

精神分裂症:
    https://youlai.cn/dise/480.html
    https://youlai.cn/dise/articlelist/480_1.html
自闭症:
    https://youlai.cn/dise/481.html
    https://youlai.cn/dise/articlelist/481_1.html

"""

文章到这里就结束了!希望大家能多多支持Python(系列)!六个月带大家学会Python,私聊我,可以问关于本文章的问题!以后每天都会发布新的文章,喜欢的点点关注!一个陪伴你学习Python的新青年!不管多忙都会更新下去,一起加油!

Editor:Lonelyroots

相关文章

  • 有来医生

    文章到这里就结束了!希望大家能多多支持Python(系列)!六个月带大家学会Python,私聊我,可以问关于本文章...

  • 2020-03-12

    询 免费问医生(限时) 有来医生 用什么白发可以变黑发 2019-02-11 问题描述:用什么白发可以变黑发 医生...

  • 医生有多难

    你觉得医生有多难 唐小鱼127 曾经的梦想就是当一名救死扶伤的医生或者是一名教书育人的老师,后来因为学习实在渣,没...

  • 医生有吗

    性格是不是投胎的首选,可是对于孩子却没得选家庭,从需要爱到需要理解再到医生在哪里,肺炎需要医生,对于出生有问题或者...

  • 只因多说一句话就遭到家属的恶言相向,医生到底做错了什么?

    案例: 值班医生做急诊手术去了,医生值班室里,刚到科室的二线值班医生周围被一群人围的水泄不通,他们中间有从门诊来的...

  • 有感而发

    今天来医院,排队的时候,有个外国人正坐在医生跟前,只见她操着一口外国话,在和医生讲述她的情况,她讲完后,医生半天低...

  • 游刃有余与力不从心

    说这个话题,是有原因的。 昨天,来一患者,找李医生复诊。正好,李医生休息。护士说:您可以明天来啊!他说:不,我就要...

  • 我为何手脚冰凉?

    “医生,我一到冬天,为什么总是手脚冰凉,有什么办法?”小王医生门诊,来了个戴帽子、围巾、毛衣毛裤的产妇。 “来,嘴...

  • 日更第十二天

    有一次,二宝丫生病,我拿病历本去找医生给看病。医生我的病历本时,来一位带小孩看病的大人。 由于医生把两本病历互换,...

  • 这年头,拥有两个微信很奇怪???

    医生!医生!有医生在吗?,差点被猪宿舍的怒火烧焦了!拜托给她扎一针镇静剂,给我来一支烫伤膏。唉,她以为跟我的虚假姐...

网友评论

      本文标题:有来医生

      本文链接:https://www.haomeiwen.com/subject/kprfvrtx.html