【发布时间】:2022-01-23 22:37:22
【问题描述】:
为了我自己的利益,我想从"https://thinkimmo.com/search?noReset=true" 爬取属性表。点击“TABELLE”(TABLE)后,您可以在一个表格中看到所有属性。
使用以下代码,我可以看到表格:
driver.get("https://thinkimmo.com/search?noReset=true")
driver.find_element_by_xpath('/html/body/div[1]/div[2]/div[2]/div/div[2]/div/div[2]/div/div/div/div[1]/div/div/button[2]/span[1]').click()
现在我可以使用以下代码抓取表格的某些部分:
soup = BeautifulSoup(driver.page_source, 'html.parser')
htmltable = soup.find('table', { 'class' : 'MuiTable-root' })
def tableDataText(table):
rows = []
trs = table.find_all('tr')
headerow = [td.get_text(strip=True) for td in trs[0].find_all('th')] # header row
if headerow: # if there is a header row include first
rows.append(headerow)
trs = trs[1:]
for tr in trs: # for every table row
rows.append([td.get_text(strip=True) for td in tr.find_all('td')]) # data row
return rows
list_table = tableDataText(htmltable)
list_table
然而结果不是我所期望的。我只得到前 7 个标题,但没有返回所有其他标题。
仔细查看网页的 HTML 后,我不确定如何获取表格的所有标题和结果。
我期待解决仅获取部分标题的问题。而且我更感兴趣的是我失败的原因。
我在table = soup.find("table") 的结果中看到的是,在第 7 个标题标题之后,表格关闭了。
提前致谢。
史蒂芬
【问题讨论】:
标签: python html web-scraping beautifulsoup