本文主要是介绍python爬虫——获取上海市三甲医院名单,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
参考:https://blog.csdn.net/Jun_Jun_0/article/details/115702833
题目:
分析:
1.访问网站,查看网站源码
进入网站查看本页面的源代码发现 :医院的名称都是放在一个
<div class="province-box"> ...... </div>
2.对爬取的网页数据进行过滤
两种正则匹配方法
方法一:
# 第一次过滤re_res = re.findall(r'<div class="province-box">(.*)<div class="wrap-right">', raw_text, re.DOTALL)# 第二次过滤,正则匹配,匹配末尾为院、心、部3字的titleres = re.findall(r'title="(.*[院心部])*)"', re_res[0])
方法二:
# 不用二次过滤 一次过滤就解决了
res = re.findall(r'<li><a href="/[^/].*/" target="_blank" title="(.*)">', res.text)
3.源代码
爬取医院名单并存入本地文件
import requests
import reurl = "https://yyk.99.com.cn/sanjia/shanghai/"
# 模拟浏览器的访问
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:87.0) ''Gecko/20100101 Firefox/87.0'}
res = requests.get(url, headers=headers)if res.status_code == 200:# 1.获取网页源代码raw_text = res.text# (优化)不用二次过滤 一次过滤就解决了res = re.findall(r'<li><a href="/[^/].*/" target="_blank" title="(.*)">', res.text)print(res)# 写入文件中read = open("上海医院名单", "w", encoding='utf-8')for i in res:read.write(i)read.write("\n")read.close()
else:print("error")
这篇关于python爬虫——获取上海市三甲医院名单的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!