python - BeautifulSoup 如何在具有类的 div 中查找所有 href 链接
问题描述
在 disboard.org/ 上,我正在尝试收集具有“服务器名称”类的 div 中的所有 href。
源代码:
def scrape():
url = 'https://disboard.org/search?keyword=hacking'
response = requests.get(url).content
soup = BeautifulSoup(response, 'html.parser')
areas = soup.find_all('div', class_='server-name')
for area in areas:
print(area.get('href'))
调用此函数时给出的错误消息是“无”而不是链接。例子:
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
解决方案
替换为:
area.find('a').attrs['href']
完整代码
import requests
from bs4 import BeautifulSoup
def scrape():
url = 'https://disboard.org/search?keyword=hacking'
response = requests.get(url).content
soup = BeautifulSoup(response, 'html.parser')
areas = soup.find_all('div', class_='server-name')
for area in areas:
print(area.find('a').attrs['href'])
if __name__ == '__main__':
scrape()
输出
/server/484696439063314482
/server/560847285874065408
/server/715563459739385886
/server/720783958966796309
/server/471545766134153237
/server/733350720690061383
/server/653642434948890626
/server/589905664277610521
/server/729633522565775381
/server/734257173890334832
/server/637702746954530865
/server/326839256758616068
/server/495986950478757891
推荐阅读
- c# - 如何修复“无法封送“返回值”:托管/非托管类型组合无效(Int/UInt 必须与 SysInt 或 SysUInt 配对)。
- php - 无法使用 Composer PHP 安装 mPDF 包 - 需要 ext-gd
- ios - 在项目中全局更改 FSCalendar 的时区
- wxpython - wxWidgets/wxPython - 滚动一个使用 GridSizer 调整大小的文本的窗口后,应用程序冻结
- html - 为什么 ASP.NET Core 应用程序没有加载到同一域的 iframe 中?
- sql - 仅在与另一个组件一起使用时才需要更新组件的过期日期
- apache-pulsar - 在 Apache Pulsar 中使用注册模式发布到主题
- javascript - 动态加载时 JavaScript 不会触发事件
- java - Builder 设计模式,在多线程环境中返回 null
- c# - 如何通过代码设置应用程序设置?