【python爬虫】爬取疾病资料库

本文介绍如何使用Python爬虫从疾病资料库http://web.tfrd.org.tw/genehelp/diseaseDatabase.html?selectedIndex=0获取疾病名称。尽管网页源代码中未直接显示数据,但通过F12开发者工具可以找到请求URL。解析该URL的内容,发现大部分文字即为疾病名称。代码实现中,简单地将中文字符识别为疾病名称。

资料库地址:http://web.tfrd.org.tw/genehelp/diseaseDatabase.html?selectedIndex=0

资料库它长这样:

这次主要爬取其中的疾病名称,难点在于网页源代码是看不到数据的,但是可以通过F12开发者工具查看网页请求数据的源网址

 

可以看到requestURL的地址,打开这个地址可以看到:

 

 其中的大部分文字就是疾病名称,爬取这个就不难了。

首先将源码中的中文字符看作疾病名称!

import requests
import bs4
from bs4 import BeautifulSoup

url= 'http://web.tfrd.org.tw/genehelpDB/GeneHelp/DiseaseDBIndex/'
path= r'C:\Users\谢迎超\Deskt
使用 Python 爬虫爬取气象资料,可按以下步骤实现: ### 1. 确定数据源 气象资料可从多个网站获取,如中国天气网、世界气象组织官网等。以中国天气网为例,其提供了丰富的气象信息。 ### 2. 安装必要的库 主要使用 `requests` 库来发送 HTTP 请求获取网页内容,`BeautifulSoup` 库用于解析 HTML 页面。可以使用以下命令进行安装: ```bash pip install requests beautifulsoup4 ``` ### 3. 发送请求获取网页内容 ```python import requests url = 'https://weather.cma.cn/' # 以中国天气网为例 response = requests.get(url) if response.status_code == 200: html_content = response.text else: print(f"请求失败,状态码:{response.status_code}") ``` ### 4. 解析网页内容 使用 `BeautifulSoup` 解析 HTML 内容,提取所需的气象资料。 ```python from bs4 import BeautifulSoup soup = BeautifulSoup(html_content, 'html.parser') # 这里需要根据网页的具体结构来定位气象资料的元素 # 例如,假设气象温度信息在 <span class="temp"> 标签中 temperature_elements = soup.find_all('span', class_='temp') for temp in temperature_elements: print(temp.text) ``` ### 5. 数据存储 将爬取到的气象资料存储到文件或数据库中,如 CSV 文件。 ```python import csv # 假设已经有一个气象数据列表 weather_data = [ {'城市': '北京', '温度': '25℃'}, {'城市': '上海', '温度': '28℃'} ] with open('weather_data.csv', 'w', newline='', encoding='utf-8') as csvfile: fieldnames = ['城市', '温度'] writer = csv.DictWriter(csvfile, fieldnames=fieldnames) writer.writeheader() for data in weather_data: writer.writerow(data) ``` ### 6. 处理反爬虫机制 网站可能有反爬虫机制,如 IP 封禁、验证码等。可以使用代理 IP、设置请求头、控制请求频率等方法来绕过。 ```python import requests 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'} proxies = { 'http': 'http://127.0.0.1:8080', 'https': 'http://127.0.0.1:8080' } url = 'https://weather.cma.cn/' response = requests.get(url, headers=headers, proxies=proxies) ``` ### 7. 定时爬取 如果需要定时获取气象资料,可以使用 `schedule` 库实现定时任务。 ```python import schedule import time def job(): print("开始爬取气象资料...") # 这里调用爬取气象资料的函数 schedule.every(1).hours.do(job) while True: schedule.run_pending() time.sleep(1) ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值