BeautifulSoup 不抓取下一页

时间:2021-05-26 11:22:25

标签: python selenium beautifulsoup

driver = webdriver.Chrome(ChromeDriverManager().install())
url = 'www.mywebsite.com'
driver.get(url)
response = requests.get(url)
markup = driver.page_source
soup = BeautifulSoup(markup, 'lxml')

for _ in range(50):
    
    driver.find_element_by_tag_name('body').send_keys(Keys.END) # Move the page down
    element = driver.find_element_by_class_name('prevnext')
    
    
    
        
    master_list = []
    for name in soup.find_all(itemprop='name'):
        data_dict = {}
        data_dict['company name'] = name.get_text(strip=True, separator = '\n')

        master_list.append(data_dict)
        
    df = pd.DataFrame(master_list)
    
    print('Page scraped')
    time.sleep(5)
    print('Sleeping for 2..')

    print('Is the button enabled : ' + str(element.is_enabled()))
    print('Is the button visible : ' + str(element.is_displayed()))


    element.click();
    print('Clicked Next')
    driver.implicitly_wait(2)

# #     for _ in range(1):

# #         print('waiting 10')
#     driver.find_element_by_class_name('submit-btn').click()
    
    

print('Finished Scraping')

我需要这个来运行 50 页。它刮掉第一个,然后翻过其他的。但是,最后只有第一个被抓取并添加到 df。每页有 20 条记录。我相信我的缩进是错误的。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

看来你犯了一个小错误。

markup = driver.page_source
soup = BeautifulSoup(markup, 'lxml')

从代码中删除这一行并将其添加到 for 循环的开头,因为每次单击时都需要获取源代码,因为每次都会加载新内容。

相关问题