我试图在此网站上抓取网络数据,而访问数据的唯一方法是遍历表中的行,将其添加到列表中(然后将其添加到pandas数据框/写入csv),然后单击下一页并重复该过程[每次搜索大约有50页,而我的程序进行了100多次搜索]。这是超级慢/效率低下的问题,我想知道是否有一种方法可以使用熊猫或漂亮的汤有效地添加所有数据,而不是遍历每行/每列。
url =“ https://claimittexas.org/app/claim-search”
rows = driver.find_elements_by_xpath("//tbody/tr")
try:
for row in rows[1:]:
row_array = []
#print(row.text) # prints the whole row
for col in row.find_elements_by_xpath('td')[1:]:
row_array.append(col.text.strip())
table_array.append(row_array)
df = pd.DataFrame(table_array)
df.to_csv('my_csv.csv', mode='a', header=False)
except:
print(letters + "no table exists")
编辑:我尝试使用漂亮的汤刮,这是我在本周早些时候尝试过并发布的内容,但是如果不使用硒,我似乎无法访问表格
在bs版本中,我放入了一堆打印语句以查看出了什么问题,并且它的行值只是一个空列表
html = driver.page_source
soup = BeautifulSoup(html, 'lxml')
rows = soup.find('table').find('tbody').find_all(('tr')[1:])
for row in rows[1:]:
cells = row.find_all('td')
for cell in cells[1:]:
print(cell.get_text())
答案 0 :(得分:0)
在BS4代码实现中使用此行
rows = soup.find('table').find('tbody').find_all('tr')[1:]
代替
rows = soup.find('table').find('tbody').find_all(('tr')[1:])