Python使用Selenium循环浏览网站页面
我在这方面花了很多时间,希望能得到一些帮助……我对Python和web抓取还不熟悉 我正在使用凭据访问一个网站,因此无法共享该链接,但它相当简单,我拥有大部分代码。使用Selenium,我可以访问网站、输入凭据、访问表格、输入所需数据、创建数据框并转到下一页。但是,我想自动循环浏览所有页面(有一些停顿,对站点很友好),并将每个页面附加到一个母版。这就是我到目前为止所做的:Python使用Selenium循环浏览网站页面,python,selenium,web-scraping,Python,Selenium,Web Scraping,我在这方面花了很多时间,希望能得到一些帮助……我对Python和web抓取还不熟悉 我正在使用凭据访问一个网站,因此无法共享该链接,但它相当简单,我拥有大部分代码。使用Selenium,我可以访问网站、输入凭据、访问表格、输入所需数据、创建数据框并转到下一页。但是,我想自动循环浏览所有页面(有一些停顿,对站点很友好),并将每个页面附加到一个母版。这就是我到目前为止所做的: driver = webdriver.Chrome() driver.get('website') username = d
driver = webdriver.Chrome()
driver.get('website')
username = driver.find_element_by_id("username")
password = driver.find_element_by_id("password")
username.send_keys("username")
password.send_keys("password"+"\n")
driver.implicitly_wait(20)
table = driver.find_element_by_id('preblockBody')
information = []
job_elems = table.find_elements_by_xpath("//*[contains(@class,'pbListingTable')]")
for value in job_elems:
#print(value.text)
information.append(value.text)
nxt=driver.find_element_by_xpath("//a[contains(@href, 'gotoNextPage(2)')]")
driver.execute_script("arguments[0].click();", nxt)
我认为最好的方法是找到所有包含“gotoNextPage”引用并创建一个循环,但我不确定如何做到这一点。非常感谢您的帮助 更新1:
我发现使用“Next”而不是单击特定的“gotoNextPage”元素很有帮助。这是我的新代码,但是,它只附加信息的最后一页,而不是在遍历页面时附加。这是非常接近
driver = webdriver.Chrome()
driver.get('website')
username = driver.find_element_by_id("username")
password = driver.find_element_by_id("password")
username.send_keys("user name")
password.send_keys("password"+"\n")
while True:
driver.implicitly_wait(30)
table = driver.find_element_by_id('preblockBody')
information = []
job_elems = table.find_elements_by_xpath("//*[contains(@class,'pbListingTable')]")
for value in job_elems:
#print(value.text)
information.append(value.text)
try:
driver.find_element_by_partial_link_text('Next').click()
except:
break
driver.quit()
print(information)
我能够通过将我的空列表从循环中带出来解决这个问题…简单但循环对我这样的新手来说可能会让人困惑