访问下拉列表中的网站

问题描述

我正在尝试构建一个网络刮板,该刮板可访问学区网站并检索学校的名称和网站。我正在使用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)

解决方法

小学的下拉列表包含在

中,您可以在找到全部并获得链接之前进行访问:
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'])

您可以轻松地将此代码扩展到中学和中学

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...