【问题标题】:Handle UL Tags in Web Scraping, Python 3.6在 Web Scraping,Python 3.6 中处理 UL 标签
【发布时间】:2019-03-08 09:26:38
【问题描述】:

我想从 URL:https://www150.statcan.gc.ca/n1/en/type/data?geoname=A0002&p=0# 中获取“表格:”和“发布日期:”

我正在使用 Salenium 网络驱动程序来抓取

以下是源代码中存在的标签。

<ul>
    # Some HTML Data
</ul>

<ul data-offset="0">
    <li class="ndm-item">
    # Some HTML Tags
</ul>

<ul>
    # Some HTML Tags
</ul>

我想获取“data-offset”所在的第二个标签“ul”的详细信息

for Class_L1 in Soup.findAll('ul', {'data-offset': "0"}):
    for Class_L2 in Class_L1('li',  {'class': 'ndm-item'}):
    for Class_L3 in Class_L2('div',  {'class': 'ndm-result-container'}):
        for Class_L4 in Class_L3.findAll('div',  {'class': 'ndm-result-productid'}):
        Table = str(Class_L4.get_text()).strip()
        print(Table)
        for Class_L4 in Class_L3.findAll('div',  {'class': 'ndm-result-date'}):
        Release_Date = str(Class_L4.get_text()).strip()
        print(Release_Date)

问题是源包含多个带有 data-offset="0" 的 'ul' 标签,我只想从包含 data-offset="0" 的 SECOND 'ul' 标签中获取详细信息

【问题讨论】:

  • 如果您每次都想要第二个ul,难道您不能只获得Class_L1[1] 吗?我知道这看起来很愚蠢,但也许我没有理解这个问题

标签: python-3.x pandas web-scraping beautifulsoup


【解决方案1】:

您可以使用第 n 个类型的选择器。这是基于:

我想从 URL 中抓取“表格:”和“发布日期:”

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
url = 'https://www150.statcan.gc.ca/n1/en/type/data?geoname=A0002&p=0'
driver = webdriver.Chrome()
driver.get(url)
tableInfo = [table.text for table in WebDriverWait(driver,10).until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, "#all .ndm-result-productid")))]
dates = [date.text for date in WebDriverWait(driver,10).until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, "#all .ndm-result-date:nth-child(2)")))]
results = list(zip(tableInfo, dates))
print(results)
driver.quit()

【讨论】:

    猜你喜欢
    • 2022-01-27
    • 2020-04-17
    • 2021-09-16
    • 2021-06-28
    • 2017-07-30
    • 1970-01-01
    • 2019-01-25
    • 2019-06-24
    • 1970-01-01
    相关资源
    最近更新 更多