如何使用python从网站的搜索栏中提取数据?

时间:2018-06-11 07:41:40

标签: python beautifulsoup

我想从一个网站中提取数据,其中包含我想要做一些评估的许多医生和医院的名字,所以我决定使用搜索栏,但遗憾的是似乎无法得到我想要的结果!

我该怎么做?

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()

2 个答案:

答案 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

根据您的需要进行调整。