python - 我想提取成员(member)链接

标签 python html web-scraping beautifulsoup python-requests

我正在尝试提取以下成员的链接

from bs4 import BeautifulSoup
import requests
r = requests.get('https://www.aapkiawaz.in/about/doctor-hospital-directory-medical-directory-doctors-doctor-hospital-listing-medical-directory-doctors-listing-medical-directory-doctors-doctor-hospital-guide-medical-directory-d/0')
soup = BeautifulSoup(r.text,'lxml')
##for link in soup.find('span',class_='person_name'):
for link1 in soup.find_all('span',class_='person_name' ):
   link2 = link1.find('a')
   print link2['href']

我期待成员的个人资料链接,但我得到以下输出:

{{project.mainbtnLink}}

最佳答案

该页面正在使用 javascript 更新内容,您看到的主要是这些更新的占位符。您可以模拟页面用于获取此内容的 POST 请求 API 调用

import requests

data = {
    'type': 'social_data',
    'page' : 1,
    'size' : 50,
    'assigned_group' : 1061,
    'categoryid' : 1070
}

r = requests.post('https://www.aapkiawaz.in/api/social_data.php', data = data).json()
links = [item['mainbtnLink'] for item in r['rec']]
print(links)

还有名字:

info = [(item['data']['person_name'], item['mainbtnLink']) for item in r['rec']]

将元组解包为 2 个列表:

names, links = zip(*[(item['data']['person_name'], item['mainbtnLink']) for item in r['rec']])

数据框:

import pandas as pd

info = [(item['data']['person_name'], item['mainbtnLink']) for item in r['rec']]
df = pd.DataFrame(info, columns = ['name' , 'link'])
print(df)

关于python - 我想提取成员(member)链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55790691/

相关文章:

c# - 来自网页的 Javascript 源代码

Python装饰器函数执行

python - 我可以在打印语句中包含一个 for 循环吗?

python - Pandas - 将 Excel 文件保存回/覆盖现有工作表

javascript - 如何处理p :inputText change event

python - scrapy: 'module' 对象没有属性 'OP_SINGLE_ECDH_USE'

java - Android应用程序,如何登录网站并显示信息?

python - 如何使用Python正则表达式匹配最里面的括号集?

html - 按钮没有顶部对齐 - 没有 pos 的解决方案 : absolute

html - 网站按钮不适用于 iphone/ipad