【发布时间】:2019-05-01 14:17:45
【问题描述】:
我对@987654321@ 还是很陌生,对BeautifulSoup 还是很陌生。我一直在努力使用BeautifulSoup 创建一个网络爬虫,以进入并解析网站上的部门目录。这些目录在 HTML 表中结构化。正如预期的那样,大多数单元格都是td 标签;但是,偶尔有一个单元格是 th 标记,我也需要对其进行解析。
这些页面中的大多数是.aspx,我读到要抓取这些页面,需要 Web 驱动程序。这是我的初始代码,我主要将 BeautifulSoup 用于请求,所以我不确定将其与 Web 驱动程序一起使用是否正确。
url = "https://webberathletics.com/staff.aspx"
driver = webdriver.Chrome(r"C:\Users\bobby\OneDrive\Documents\MyPrograms\webdrivers\chromedriver.exe")
driver.implicitly_wait(30)
driver.get(url)
soup = BeautifulSoup(driver.page_source, 'html.parser')
contacts_list = []
我将添加更多 URL 供抓取器解析,因此我试图使抓取器尽可能动态,这意味着它将抓取包含具有 th 单元格的行和其他不包含的行的表不。以下是我目前拥有的。
我希望它解析单元格是td 还是th。
for row in soup.find_all('tr'):
cells = row.find_all('td', 'th')
if len(cells) > 0:
col1 = cells[0].text.strip()
col2 = cells[1].text.strip()
col3 = cells[2].text.strip()
col4 = cells[3].text.strip()
contact = {'col1': col1, 'col2': col2, 'col3': col3, 'col4': col4}
contacts_list.append(contact)
print(contacts_list)
目前它根本不会打印,但它会运行,所以我不确定它是否正常工作。但即使它确实打印了,我也不确定我是否正确地处理了这个问题。
【问题讨论】:
标签: python html parsing html-table beautifulsoup