python 爬虫-医院排行(requests-html)

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-8
from requests_html import HTMLSession
import xlwt

#链接网页站点
session = HTMLSession()
r = session.get('http://www.fudanmed.com/institute/news2019-2.aspx')

#初始化一个Excel
xl = 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属性

在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您介绍一下如何使用 Python 爬虫来爬取房产数据并保存到本地。 首先,您需要选择一个合适的网站来进行爬取。例如,可以选择链家网、安居客等房产网站。然后,您需要分析该网站的页面结构和数据请求方式,确定需要爬取哪些数据,以及如何获取这些数据。 接着,您可以使用 Pythonrequests 库来发送 HTTP 请求,获取网页内容。然后,可以使用 BeautifulSoup 库来解析网页内容,提取需要的数据。 最后,您可以使用 Python 的 Pandas 库将数据保存到本地的 Excel 或 CSV 文件中。以下是一个示例代码: ```python import requests from bs4 import BeautifulSoup import pandas as pd # 发送 HTTP 请求获取网页内容 url = 'https://bj.lianjia.com/ershoufang/' headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'} response = requests.get(url, headers=headers) soup = BeautifulSoup(response.content, 'html.parser') # 解析网页内容,提取需要的数据 house_list = soup.find_all('div', {'class': 'info'}) data = [] for house in house_list: name = house.find('div', {'class': 'title'}).text.strip() price = house.find('div', {'class': 'price'}).text.strip() area = house.find('div', {'class': 'houseInfo'}).text.strip() data.append([name, price, area]) # 将数据保存到本地文件 df = pd.DataFrame(data, columns=['名称', '价格', '面积']) df.to_excel('house_data.xlsx', index=False) ``` 这是一个简单的示例代码,您可以根据您需要爬取的数据和网站的不同来进行修改和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值