【问题标题】:Accessing websites in a dropdown list访问下拉列表中的网站
【发布时间】:2020-08-24 12:58:59
【问题描述】:

我正在尝试构建一个网络爬虫,它可以访问学区网站并检索学校的名称和网站。我正在使用https://www.dallasisd.org/ 来测试下面的代码。

我目前不知道如何 1) 仅访问“学校”的下拉列表和 2) 在同一下拉列表中检索 <li> 标记中的链接。

任何帮助将不胜感激!谢谢。

from bs4 import BeautifulSoup
from selenium import webdriver
import urllib.request
import requests
import re
import xlwt
import pandas as pd
import xlrd
from xlutils.copy import copy
import os.path

hdr = { 'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; Win64; x64)' }
browser = webdriver.Chrome()
url = 'https://www.dallasisd.org/'
browser.get(url)
html_source = browser.page_source
browser.quit()
soup = BeautifulSoup(html_source, "lxml")
for name_list in soup.find_all(class_ ='sw-dropdown-list'):
    print(name_list.text)

【问题讨论】:

    标签: web-scraping drop-down-menu automation data-collection


    【解决方案1】:

    小学的下拉列表包含在

    中,您可以在查找所有内容并获取链接之前访问它:
    from bs4 import BeautifulSoup
    import requests
    
    headers = {
    'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36'
    }
    
    url = 'https://www.dallasisd.org/'
    
    req = requests.get(url, headers=headers)
    soup = BeautifulSoup(req.content, 'html.parser')
    dropdown = soup.find('div', attrs={'id': "cs-elementary-schools-panel"})
    
    for link in dropdown.find_all('li', attrs={'class': "cs-panel-item"}):
       print("Url: https://www.dallasisd.org" + link.find('a')['href'])
    

    您可以轻松将此代码扩展到初中和高中

    【讨论】:

      猜你喜欢
      • 2018-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多