当前位置 : 主页 > 网络编程 > 其它编程 >

python爬虫医院排行(requestshtml)

来源:互联网 收集:自由互联 发布时间:2023-07-02
python爬虫-医院排行(requests-html),Go语言社区,Golang程序员人脉社 python 爬虫小试牛刀(一) 在github上发现一个轻量级的爬虫框架 一. 官网介绍 requests-html中文文档 全面支持解析Javascript! CS
python爬虫-医院排行(requests-html),Go语言社区,Golang程序员人脉社

python 爬虫小试牛刀(一)

在github上发现一个轻量级的爬虫框架

一. 官网介绍 requests-html中文文档

  • 全面支持解析Javascript!
  • CSS 选择器 (jQuery风格, 感谢PyQuery).
  • XPath 选择器, for the faint at heart.
  • 自定义user-agent (就像一个真正的web浏览器).
  • 自动追踪重定向.
  • 连接池与COOKIE持久化.
  • 令人欣喜的请求体验,魔法般的解析页面.

嗯 感觉好像很强大, 试一试, 315晚会报道了360 医疗相关假广告,想着就爬点医疗相关数据

http://www.fudanmed.com/institute/news2019-2.aspx 锁定目标先,就先把全国前一百名医院数据爬到excel里实践下

二. F12分析网页元素接口

截屏20210317 下午82936png

整个页面table包裹,医院名称包裹在a标签里

最简单粗暴的思路是爬取所有a标签里的数据,然后循环提取href里的文本,直接上代码

# coding=UTF-8from requests_html import HTMLSessionimport xlwt#链接网页站点session = HTMLSession()r = session.get('http://www.fudanmed.com/institute/news2019-2.aspx')#初始化一个Excelxl = xlwt.Workbook(encoding='utf-8')sheet = xl.add_sheet('全国医院排名')sheet.write(0, 0, '排名')sheet.write(0, 1, '医院名称')#初始化排名i = 0#爬取数据def findHospitalName(): trs = r.html.find("a") for item in trs: #获取到a标签的href属性里的文本 text = item.find('a', first=True).attrs['href'] filterData(text)#清洗数据def filterData(text): #过滤文本了的链接参数 if "#" in text: array = text.split("#", 1) #过滤掉空 if len(array[1]): global i i += 1 writeData(i, array[1])#写入数据def writeData(sort, data): print(sort) print(data) sheet.write(sort, 0, sort) sheet.write(sort, 1, data) xl.save('/Users/lsr/Documents/GJProject/py/' + "全国医院排名" + ".xls")#开始findHospitalName()

别看代码多,其实核心代码就两条

trs = r.html.find("a") #获取所有a标签数据,返回 Element对象 数组text = item.find('a', first=True).attrs['href'] #获取a标签的herf属性

在这里插入图片描述

上一篇:微信小程序点击按钮退出小程序
下一篇:没有了
网友评论