我正在为项目制作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
答案 0 :(得分:0)
根据@cpander,只需存储所有item.find("a", {"class": "search-item-doctor-link"})['href']
,然后使用存储的Urls再次运行request.get()。
只是获取电话号码的简短示例:
item.find("div", attrs={"doctordetail":".1.0.0.0.2.2.0.1.1.0.0.1:1.0"}")
答案 1 :(得分:0)
尤其要感谢他的想法建议。
这就是我的做法:
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
我得到了那里的所有个人资料链接,其余的我都知道。
感谢所有提供帮助的人:)