如何在不单击展开按钮的情况下抓取页面的源代码?

时间:2019-04-14 20:49:42

标签: python selenium

该特定网站具有“显示更多”按钮。从表中加载更多数据。但是这些数据似乎在一开始就已加载,因为即使在脱机模式下,我也可以单击它并展开表。

有没有一种方法可以一次性擦除整个源代码,而无需在Selenium中多次单击此按钮?由于似乎在首次加载页面时首先加载了整个表。

driver.get_source在这种情况下不会显示全部内容,而仅在打开浏览器时显示的内容。

在Google Chrome中使用Python,Selenium。

1 个答案:

答案 0 :(得分:0)

如果确实在开始时已加载所有数据,则可以通过查看DOM(在标记或可能包含数据的任何其他标记处)确定找到它。简单的方法是打开控制台(F12)并使用浏览器提供的检查元素工具

现在要回答您的问题,我将在找到的位置(标签)使用BeautifulSoup刮擦数据。我已经看到,使用Selenium刮擦与BeautifulSoup非常相似,因此您可能只了解概念< / p>

例如,您的表驻留在div中(具有随机属性,比如说一个名为“ randomclass”的类)。 table标记为“ ul”,每个条目都存储在“ li”中,或专门存储在“ li”中。text()

要选择div:

selected_div = soup.find('div', attrs={'class': 'randomclass'})

要选择div中的表,请执行以下操作:

table = selected_div.find('ul')

要遍历表行并管理数据:

for li in table.find_all('li'):
        mylist.append(li.text())