我想从一个网站中提取数据,其中包含我想要做一些评估的许多医生和医院的名字,所以我决定使用搜索栏,但遗憾的是似乎无法得到我想要的结果!
我该怎么做?
from bs4 import BeautifulSoup
import requests
import urllib.request
types_of_doctor = ['dermatologist', 'gynecologist', 'paediatric-surgeon', 'cardiologist', 'diabetologists', 'eye-specialist']
def search():
for query in types_of_doctor:
# Constracting http query
url = 'http://health.hamariweb.com/doctors/' + query
r = requests.get(url)
soup = BeautifulSoup(r.content, 'html.parser')
Doctors_name = soup.findAll('a', {"class" : "NormalText"})
for doctors in Doctors_name:
print(doctors.text)
links = soup.select('a')
header = types_of_doctor
filename = 'AllNames.csv'
f = open(filename, 'w')
for head in header:
f.write(head+'\t')
for doctors in Doctors_name:
print(doctors.text)
f.write(doctors.text)
search()
答案 0 :(得分:1)
你需要移动你的
filename = 'AllNames.csv'
f = open(filename, 'w')
在循环之外。否则,您正在为每个查询初始化和覆盖文件。
def search():
filename = 'AllNames.csv'
f = open(filename, 'w')
for query in types_of_doctor:
答案 1 :(得分:1)
从网站提取信息的技术是网络抓取。该技术主要侧重于将Web上的非结构化数据(HTML格式)转换为结构化数据(数据库或电子表格)。
您可以通过各种方式执行网络报废。其中之一是使用 BeautifulSoup 来使用Python,这有助于完成这项任务。
请阅读以下文章:
https://www.analyticsvidhya.com/blog/2015/10/beginner-guide-web-scraping-beautiful-soup-python/
https://medium.freecodecamp.org/how-to-scrape-websites-with-python-and-beautifulsoup-5946935d93fe
根据您的需要进行调整。