python-3.x - 如何从网络上抓取一个类的属性的所有子项?
问题描述
我尝试使用 BeautifulSoup4 在网站中获取突出显示的区域(在屏幕截图中),但我无法得到我想要的。也许你有一个建议用另一种方式来做。
from bs4 import BeautifulSoup
import requests
import pprint
import re
import pyperclip
import urllib
import csv
import html5lib
urls = ['https://e-mehkeme.gov.az/Public/Cases?page=1',
'https://e-mehkeme.gov.az/Public/Cases?page=2'
]
# scrape elements
for url in urls:
response = requests.get(url)
soup = BeautifulSoup(response.content, "html.parser")
content = soup.findAll("input", class_="casedetail filled")
print(content)
我的预期输出是这样的:
Ətraflı məlumat:
İşə baxan hakim və ya tərkib
Xəyalə Cəmilova - sədrlik edən hakim
İlham Kərimli - tərkib üzvü
İsmayıl Xəlilov - tərkib üzvü
Tərəflər
Cavabdeh: MAHMUDOV MAQSUD SOLTAN OĞLU
Cavabdeh: MAHMUDOV MAHMUD SOLTAN OĞLU
İddiaçı: QƏHRƏMANOVA AYNA NUĞAY QIZI
İşin mahiyyəti
Mənzil mübahisələri - Mənzildən çıxarılma
解决方案
使用基本 url 首先获取所有caseid
,然后将这些 caseid 传递给目标 url,然后获取第一个 td 标记的值。
import requests
from bs4 import BeautifulSoup
urls = ['https://e-mehkeme.gov.az/Public/Cases?page=1',
'https://e-mehkeme.gov.az/Public/Cases?page=2'
]
target_url="https://e-mehkeme.gov.az/Public/CaseDetail?caseId={}"
for url in urls:
response = requests.get(url)
soup = BeautifulSoup(response.content, "html.parser")
for caseid in soup.select('input.casedetail'):
#print(caseid['value'])
soup1=BeautifulSoup(requests.get(target_url.format(caseid['value'])).content,'html.parser')
print(soup1.select_one("td").text)
推荐阅读
- python - AWS 使用 Python 翻译大型 HTML
- xmlhttprequest - 为什么 XMLHttpRequest 在 Edge 上不起作用?
- reactjs - 在反应应用程序中保护 Firebase API 密钥以使其无法公开访问的最佳方法是什么?
- php - Mysql GROUP BY 和 Union 基于日期条件
- c++ - 带有 std::function 的 RAII
- c# - 如何在 WPF 后面的代码中绑定属性
- javascript - 如何在选择之前禁用按钮?
- c# - Docker容器环境变量中的.Net Core 3.1应用程序不起作用
- c# - Google Drive API 在本地工作,但在部署时不工作
- android - 如何将水平recyclerview扩展到垂直