Python scraper: как зайти в профиль и извлечь данные - PullRequest
0 голосов
/ 29 августа 2018

Я делаю скребок для Python для проекта. Мне нужно почистить некоторые данные с сайта Doctor Review.

У меня есть код, работающий для получения имени, специализации и количества отзывов, но мне нужно ввести каждый из их профилей, чтобы получить номер телефона и адрес, я не знаю, как мне это сделать, нужно ли мне отдельно функция, чтобы сделать это, или я могу сделать это с этим?

Любая помощь мне очень поможет.

import requests
from bs4 import BeautifulSoup


base_url = "https://www.ratemds.com/best-doctors/?page=1"
for page in range(1, 5, 1):
    r = requests.get(base_url)
    c = r.content
    soup = BeautifulSoup(c, 'html.parser')
    all = soup.find_all("div", {"class": "search-item doctor-profile"})

    for item in all:
        try:
            print(item.find("a", {"class": "search-item-doctor-link"}).text)
        except:
            pass
        try:
            print(item.find("a", {"class": None}).text)
        except:
            pass

Ответы [ 2 ]

0 голосов
/ 29 августа 2018

Я хочу поблагодарить его особенно за предложение идеи.

Так я и сделал:

for item in all:
    try:
        n = item.find("a", {"class": "search-item-doctor-link"})
        a = n.get('href')
        print("https://www.ratemds.com/"+a)
    except:
        pass

И я получаю все ссылки для там профилей, остальные я знаю.

Спасибо всем, кто предложил там помощь:)

0 голосов
/ 29 августа 2018

В соответствии с @cpander просто сохраните все item.find("a", {"class": "search-item-doctor-link"})['href'] и снова запустите request.get () с сохраненными URL-адресами. Просто краткий пример получения номера телефона:

item.find("div", attrs={"doctordetail":".1.0.0.0.2.2.0.1.1.0.0.1:1.0"}")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...